@Override @Nullable public Transition getSharedElementTransition(@NonNull ViewGroup container, @Nullable View from, @Nullable View to, boolean isPush) { return new TransitionSet().addTransition(new ChangeBounds()).addTransition(new ChangeClipBounds()).addTransition(new ChangeTransform()); }
@Override public void captureEndValues(TransitionValues transitionValues) { super.captureEndValues(transitionValues); int width = ((View) transitionValues.values.get(PROPNAME_PARENT)).getWidth(); Rect bounds = (Rect) transitionValues.values.get(PROPNAME_BOUNDS); bounds.right = width; bounds.bottom = width * 3 / 4; transitionValues.values.put(PROPNAME_BOUNDS, bounds); }
@Override public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) { Animator changeBounds = super.createAnimator(sceneRoot, startValues, endValues); if (startValues == null || endValues == null || !(endValues.view instanceof ParallaxScrimageView)) return changeBounds; ParallaxScrimageView psv = ((ParallaxScrimageView) endValues.view); if (psv.getOffset() == 0) return changeBounds; Animator deparallax = ObjectAnimator.ofInt(psv, ParallaxScrimageView.OFFSET, 0); AnimatorSet transition = new AnimatorSet(); transition.playTogether(changeBounds, deparallax); return transition; } }
private Transition enterTransition() { ChangeBounds bounds = new ChangeBounds(); bounds.setDuration(150); return bounds; }
private void setupWindowAnimations() { ChangeBounds exitTransition = new ChangeBounds(); exitTransition.setDuration(1000); exitTransition.addListener(exitListener); getWindow().setSharedElementExitTransition(exitTransition); ChangeBounds reenterTransition = new ChangeBounds(); reenterTransition.setDuration(1000); reenterTransition.addListener(reenterListener); reenterTransition.setInterpolator(new DecelerateInterpolator(4)); getWindow().setSharedElementReenterTransition(reenterTransition); }
final ChangeBounds bounds = new ChangeBounds(); bounds.setDuration(1500); bounds.addListener(new Transition.TransitionListener() { @Override public void onTransitionStart(Transition transition) {
private void setPathMotion() { ChangeBounds changeBounds = new ChangeBounds(); //或者使用PathMotion 重写Path 调用Path.cubicTo划一个弧度 ArcMotion arcMotion = new ArcMotion(); // arcMotion.setMaximumAngle(90f); // arcMotion.setMinimumVerticalAngle(90f); arcMotion.setMinimumHorizontalAngle(90F); changeBounds.setPathMotion(arcMotion); changeBounds.setDuration(1000); TransitionManager.beginDelayedTransition(flPathLayout, changeBounds); FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) btnPathMotion.getLayoutParams(); params.gravity = isPath ? Gravity.TOP | Gravity.LEFT : Gravity.BOTTOM | Gravity.RIGHT; btnPathMotion.setLayoutParams(params); isPath = !isPath; } }
getWindow().setReturnTransition(set2); ChangeBounds enterBounds = new ChangeBounds(); enterBounds.setDuration(300); enterBounds.setStartDelay(400); enterBounds.setInterpolator(new FastOutSlowInInterpolator()); ChangeBounds returnBounds = new ChangeBounds(); returnBounds.setDuration(300); returnBounds.setInterpolator(new FastOutSlowInInterpolator());
@TargetApi(Build.VERSION_CODES.KITKAT) private TransitionSet createTransitionSet() { ChangeBounds changeBounds = new ChangeBounds(); changeBounds.addTarget(dropDownContainer); Fade fade = new Fade(); fade.addTarget(emptyDropDownSpace); TransitionSet transitionSet = new TransitionSet(); transitionSet.addTransition(changeBounds); transitionSet.addTransition(fade); transitionSet.setInterpolator(new AccelerateDecelerateInterpolator()); transitionSet.addListener(new TransitionListenerAdapter() { @Override public void onTransitionStart(Transition transition) { super.onTransitionStart(transition); isTransitioning = true; } @Override public void onTransitionEnd(Transition transition) { super.onTransitionEnd(transition); isTransitioning = false; } }); return transitionSet; }
ChangeBounds mySwapTransition = new ChangeBounds(); mySwapTransition.addListener(new Transition.TransitionListener() { @Override public void onTransitionStart(Transition transition) { } @Override public void onTransitionEnd(Transition transition) { } @Override public void onTransitionCancel(Transition transition) {} @Override public void onTransitionPause(Transition transition) { } @Override public void onTransitionResume(Transition transition) { } }); TransitionManager.go(new Scene(mApertureGroup), mySwapTransition);
Path path = new Path(); path.moveTo(0, 0); path.quadTo(0.5f, 0, 1, 1); // Quadratic Bezier PatternPathMotion pathMotion = new PathMotion(path); ChangeBounds changeBounds = new ChangeBounds(); changeBounds.setPathMotion(pathMotion);
ChangeBounds transition1 = new ChangeBounds(); transition.addTransition(transition1); ChangeTransform transition2 = new ChangeTransform(); transition1.setInterpolator(interpolator); transition2.setInterpolator(interpolator); transition3.setInterpolator(interpolator);
@Override public void captureStartValues(TransitionValues transitionValues) { super.captureStartValues(transitionValues); final View view = transitionValues.view; if (view.getWidth() <= 0 || view.getHeight() <= 0) return; transitionValues.values.put(PROPERTY_COLOR, startColor); }
.... //mapFollowButton.invalidate(); mapFollowButton.postDelayed(new Runnable() { @Override public void run() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { final ChangeBounds transition= new ChangeBounds(); transition.setDuration(1000L); TransitionManager.beginDelayedTransition((ViewGroup) findViewById(R.id.mainRL),transition); } mapFollowButton.setLayoutParams(layoutParams_); mapFollowButton.setVisibility(View.VISIBLE); } },10);
private void setupWindowAnimations() { ChangeBounds enterTransition = new ChangeBounds(); enterTransition.setDuration(1000); enterTransition.setInterpolator(new DecelerateInterpolator(4)); enterTransition.addListener(enterTransitionListener); getWindow().setSharedElementEnterTransition(enterTransition); ChangeBounds returnTransition = new ChangeBounds(); returnTransition.setDuration(1000); returnTransition.addListener(returnTransitionListener); getWindow().setSharedElementReturnTransition(returnTransition); Slide exitSlide = new Slide(LEFT); exitSlide.setDuration(700); exitSlide.addListener(exitTransitionListener); exitSlide.addTarget(R.id.llphone); exitSlide.setInterpolator(new DecelerateInterpolator()); getWindow().setExitTransition(exitSlide); Slide reenterSlide = new Slide(LEFT); reenterSlide.setDuration(700); reenterSlide.addListener(reenterTransitionListener); reenterSlide.setInterpolator(new DecelerateInterpolator(2)); reenterSlide.addTarget(R.id.llphone); getWindow().setReenterTransition(reenterSlide); }
confirmPass.setVisibility(View.VISIBLE); final ChangeBounds bounds = new ChangeBounds(); bounds.setDuration(1500); bounds.addListener(new Transition.TransitionListener() { @Override public void onTransitionStart(Transition transition) {
@Override public void captureStartValues(TransitionValues transitionValues) { super.captureStartValues(transitionValues); final View view = transitionValues.view; if (view.getWidth() <= 0 || view.getHeight() <= 0) { return; } transitionValues.values.put(PROPERTY_COLOR, ContextCompat.getColor(view.getContext(), R.color.super_light_grey)); }
getWindow().setSharedElementEnterTransition(new ChangeBounds());
private void moveIcon() { View moveableIcon = findViewById(R.id.moveableImageView); // change the position of the icon RelativeLayout.LayoutParams positionRule = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT , RelativeLayout.LayoutParams.WRAP_CONTENT); positionRule.addRule(RelativeLayout.ALIGN_PARENT_TOP , RelativeLayout.TRUE); positionRule.addRule(RelativeLayout.ALIGN_PARENT_LEFT , RelativeLayout.TRUE); moveableIcon.setLayoutParams(positionRule); // change the size of the button ViewGroup.LayoutParams sizeRules = moveableIcon.getLayoutParams(); sizeRules.width = 50; sizeRules.height = 50; moveableIcon.setLayoutParams(sizeRules); ChangeBounds myTransition = new ChangeBounds(); myTransition.setDuration(1000L); TransitionManager.go(new Scene(myLayout), myTransition); fadeOutAndHideImage(image); }
@Override public void captureEndValues(TransitionValues transitionValues) { super.captureEndValues(transitionValues); final View view = transitionValues.view; if (view.getWidth() <= 0 || view.getHeight() <= 0) { return; } transitionValues.values.put(PROPERTY_COLOR, endColor); }