@NonNull public static TransitionSet mergeTransitions(int ordering, Transition... transitions) { TransitionSet transitionSet = new TransitionSet(); for (Transition transition : transitions) { if (transition != null) { transitionSet.addTransition(transition); } } transitionSet.setOrdering(ordering); return transitionSet; }
@Override @NonNull protected Transition getTransition(@NonNull final ViewGroup container, @Nullable final View from, @Nullable final View to, boolean isPush) { Transition backgroundFade = new Fade(); backgroundFade.addTarget(R.id.dialog_background); Transition fabTransform = new FabTransform(ContextCompat.getColor(container.getContext(), R.color.colorAccent), R.drawable.ic_github_face); TransitionSet set = new TransitionSet(); set.addTransition(backgroundFade); set.addTransition(fabTransform); return set; }
@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()); }
@Nullable @Override public Transition getSharedElementTransition(@NonNull ViewGroup container, @Nullable final View from, @Nullable View to, boolean isPush) { Transition transition = new TransitionSet().addTransition(new ChangeBounds()).addTransition(new ChangeClipBounds()).addTransition(new ChangeTransform()); transition.setPathMotion(new ArcMotion()); // The framework doesn't totally fade out the "from" shared element, so we'll hide it manually once it's safe. transition.addListener(new TransitionListener() { @Override public void onTransitionStart(Transition transition) { if (from != null) { for (String name : sharedElementNames) { View namedView = TransitionUtils.findNamedView(from, name); if (namedView != null) { namedView.setVisibility(View.INVISIBLE); } } } } @Override public void onTransitionEnd(Transition transition) { } @Override public void onTransitionCancel(Transition transition) { } @Override public void onTransitionPause(Transition transition) { } @Override public void onTransitionResume(Transition transition) { } }); return transition; }
TransitionSet shared = ... shared.addTarget("sharedName"); gridElement.setTransitionName("sharedName"); Fade fade = new Fade(); fade.excludeTarget("sharedName", true); TransitionSet set = new TransitionSet(); set.addTransition(shared) .addTransition(fade); TransitionManager.go(detailScene, set);
@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; }
getWindow().setSharedElementExitTransition(new TransitionSet(). addTransition(new Fade().addTarget("text"));
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public EnterSharedElementTextSizeHandler(Activity activity) { mActivity = activity; Transition transitionWindow = activity.getWindow().getSharedElementEnterTransition(); if (!(transitionWindow instanceof TransitionSet)) { mTransitionSet = new TransitionSet(); mTransitionSet.addTransition(transitionWindow); } else { mTransitionSet = (TransitionSet) transitionWindow; } activity.setEnterSharedElementCallback(this); }
TransitionSet transitionSet = new TransitionSet(); transitionSet.addTransition(new Slide(Gravity.BOTTOM)); transitionSet.addTransition(new ChangeBounds()); TransitionManager.beginDelayedTransition(buttonsContainer, transitionSet); btnA.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); btnB.setVisibility(View.GONE) btnC.setVisibility(View.GONE)
TransitionSet set = new TransitionSet(); Transition slideUp = new Slide(Gravity.UP); slideUp.addTarget(view1); set.addTransition(slideUp); Transition slideDown = new Slide(Gravity.DOWN); slideDown.addTarget(view2); set.addTransition(slideDown);
// above I've gotten the sharedElements (Views)... newSharedElement.setTransitionName("sharedProperty"); oldSharedElement.setTransitionName("sharedProperty"); // having android:transitionName in the xml can be easier // This transition handles the shared element move based on the shared tansition name Transition shared = TransitionInflater.from(context).inflateTransition(android.R.transition.move); shared.addTarget(newSharedElement); // create a scene container is a parentView (FrameLayout) of both children Scene scene = new Scene(container, newChild); // everything else is set to Fade, shared element is excluded Transition fade = TransitionInflater.from(context).inflateTransition(android.R.transition.fade); fade.excludeTarget(newSharedElement, true); // combine the translations TransitionSet set = new TransitionSet(); set.addTransition(shared).addTransition(fade); // translationize TransitionManager.go(scene, set);
private void switchAnim() { Slide slide = new Slide(Gravity.RIGHT); slide.excludeTarget(tvFirst, true); Fade fade = new Fade(); fade.excludeTarget(tvSecond, true); TransitionSet transitionSet = new TransitionSet() .addTransition(slide) .addTransition(fade); TransitionManager.beginDelayedTransition(llParentLayout, transitionSet); if (tvFirst.getVisibility() == View.VISIBLE) { tvFirst.setVisibility(View.GONE); tvSecond.setVisibility(View.GONE); } else { tvFirst.setVisibility(View.VISIBLE); tvSecond.setVisibility(View.VISIBLE); } } }
@Override public void onSwipeFinish(int dir) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setReturnTransition(new TransitionSet() .addTransition(new Slide(dir > 0 ? Gravity.TOP : Gravity.BOTTOM)) .setInterpolator(new AccelerateDecelerateInterpolator())); } onBackPressed(); }
@Override public void onClick(View view) { Intent intent = new Intent(context, ViewActivity.class); intent.putExtra("NOTIFICATION_ID", reminderList.get(viewHolder.getAdapterPosition()).getId()); // Add shared element transition animation if on Lollipop or later if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { CardView cardView = (CardView) view.findViewById(R.id.notification_card); TransitionSet setExit = new TransitionSet(); Transition transition = new Fade(); transition.excludeTarget(android.R.id.statusBarBackground, true); transition.excludeTarget(android.R.id.navigationBarBackground, true); transition.excludeTarget(R.id.fab_button, true); transition.excludeTarget(R.id.recycler_view, true); transition.setDuration(400); setExit.addTransition(transition); ((Activity) context).getWindow().setSharedElementsUseOverlay(false); ((Activity) context).getWindow().setReenterTransition(null); ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(((Activity) context), cardView, "cardTransition"); ActivityCompat.startActivity(((Activity) context), intent, options.toBundle()); ((RecyclerListener) context).hideFab(); } else { context.startActivity(intent); } } });
Window window = getWindow(); TransitionSet set = new TransitionSet(); set.addTransition(new ChangeImageTransform()); set.addTransition(new ChangeBounds()); set.setDuration(duration); set.addListener(yourTransitionListener) window.setSharedElementEnterTransition(set);
Window window = getWindow(); TransitionSet set = new TransitionSet(); set.addTransition(new ChangeImageTransform()); set.addTransition(new ChangeBounds()); set.setDuration(duration); set.addListener(yourTransitionListener) window.setSharedElementEnterTransition(set);
@Override public void onSwipeFinish(int dir) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setReturnTransition(new TransitionSet() .setOrdering(TransitionSet.ORDERING_TOGETHER) .addTransition(new Slide(dir > 0 ? Gravity.TOP : Gravity.BOTTOM)) .addTransition(new Fade()) .setInterpolator(new AccelerateDecelerateInterpolator())); } this.finish(); }
@Override public void onSwipeFinish(int dir) { if (recyclerViewAdapter.isSelectorModeActive()) { recyclerViewAdapter.cancelSelectorMode(null); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setReturnTransition(new TransitionSet() .setOrdering(TransitionSet.ORDERING_TOGETHER) .addTransition(new Slide(dir > 0 ? Gravity.TOP : Gravity.BOTTOM)) .addTransition(new Fade()) .setInterpolator(new AccelerateDecelerateInterpolator())); } finish(); }
@Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_detail); postponeEnterTransition(); TransitionSet transitions = new TransitionSet(); Slide slide = new Slide(Gravity.BOTTOM); slide.setInterpolator(AnimationUtils.loadInterpolator(this, android.R.interpolator.linear_out_slow_in)); slide.setDuration(getResources().getInteger(android.R.integer.config_shortAnimTime)); transitions.addTransition(slide); transitions.addTransition(new Fade()); getWindow().setEnterTransition(transitions); Intent intent = getIntent(); sharedElementCallback = new DetailSharedElementEnterCallback(intent); setEnterSharedElementCallback(sharedElementCallback); initialItem = intent.getIntExtra(IntentUtil.SELECTED_ITEM_POSITION, 0); setUpViewPager(intent.<Photo>getParcelableArrayListExtra(IntentUtil.PHOTO)); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setNavigationOnClickListener(navigationOnClickListener); super.onCreate(savedInstanceState); }
public static void startToolbarAnimation( Context context, ViewGroup v ) { if (new UpdaterOptions(context).disableAnimations()) { return; } if (Build.VERSION.SDK_INT >= 21) { TransitionManager.beginDelayedTransition(v, new TransitionSet() .addTransition(new Fade(Fade.IN)) .addTransition(new Slide(Gravity.LEFT)) .addTransition(new ChangeBounds()) ); } else if (Build.VERSION.SDK_INT >= 14){ android.support.transition.TransitionManager.beginDelayedTransition(v, new AutoTransition().setDuration(250)); } { // No animation } }