Search in sources :

Example 66 with Transition

use of android.transition.Transition in project android_frameworks_base by AOSPA.

the class Fragment method loadTransition.

private static Transition loadTransition(Context context, TypedArray typedArray, Transition currentValue, Transition defaultValue, int id) {
    if (currentValue != defaultValue) {
        return currentValue;
    }
    int transitionId = typedArray.getResourceId(id, 0);
    Transition transition = defaultValue;
    if (transitionId != 0 && transitionId != com.android.internal.R.transition.no_transition) {
        TransitionInflater inflater = TransitionInflater.from(context);
        transition = inflater.inflateTransition(transitionId);
        if (transition instanceof TransitionSet && ((TransitionSet) transition).getTransitionCount() == 0) {
            transition = null;
        }
    }
    return transition;
}
Also used : TransitionSet(android.transition.TransitionSet) Transition(android.transition.Transition) TransitionInflater(android.transition.TransitionInflater)

Example 67 with Transition

use of android.transition.Transition in project android_frameworks_base by AOSPA.

the class ExitTransitionCoordinator method startExitTransition.

private void startExitTransition() {
    Transition transition = getExitTransition();
    ViewGroup decorView = getDecor();
    if (transition != null && decorView != null && mTransitioningViews != null) {
        setTransitioningViewsVisiblity(View.VISIBLE, false);
        TransitionManager.beginDelayedTransition(decorView, transition);
        setTransitioningViewsVisiblity(View.INVISIBLE, false);
        decorView.invalidate();
    } else {
        transitionStarted();
    }
}
Also used : ViewGroup(android.view.ViewGroup) Transition(android.transition.Transition)

Example 68 with Transition

use of android.transition.Transition in project android_frameworks_base by AOSPA.

the class ExitTransitionCoordinator method startSharedElementExit.

private void startSharedElementExit(final ViewGroup decorView) {
    Transition transition = getSharedElementExitTransition();
    transition.addListener(new Transition.TransitionListenerAdapter() {

        @Override
        public void onTransitionEnd(Transition transition) {
            transition.removeListener(this);
            if (isViewsTransitionComplete()) {
                delayCancel();
            }
        }
    });
    final ArrayList<View> sharedElementSnapshots = createSnapshots(mExitSharedElementBundle, mSharedElementNames);
    decorView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

        @Override
        public boolean onPreDraw() {
            decorView.getViewTreeObserver().removeOnPreDrawListener(this);
            setSharedElementState(mExitSharedElementBundle, sharedElementSnapshots);
            return true;
        }
    });
    setGhostVisibility(View.INVISIBLE);
    scheduleGhostVisibilityChange(View.INVISIBLE);
    if (mListener != null) {
        mListener.onSharedElementEnd(mSharedElementNames, mSharedElements, sharedElementSnapshots);
    }
    TransitionManager.beginDelayedTransition(decorView, transition);
    scheduleGhostVisibilityChange(View.VISIBLE);
    setGhostVisibility(View.VISIBLE);
    decorView.invalidate();
}
Also used : Transition(android.transition.Transition) View(android.view.View) ViewTreeObserver(android.view.ViewTreeObserver)

Example 69 with Transition

use of android.transition.Transition in project android_frameworks_base by AOSPA.

the class ExitTransitionCoordinator method getExitTransition.

private Transition getExitTransition() {
    Transition viewsTransition = null;
    if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) {
        viewsTransition = configureTransition(getViewsTransition(), true);
    }
    if (viewsTransition == null) {
        viewsTransitionComplete();
    } else {
        final ArrayList<View> transitioningViews = mTransitioningViews;
        viewsTransition.addListener(new ContinueTransitionListener() {

            @Override
            public void onTransitionEnd(Transition transition) {
                transition.removeListener(this);
                viewsTransitionComplete();
                if (mIsHidden && transitioningViews != null) {
                    showViews(transitioningViews, true);
                    setTransitioningViewsVisiblity(View.VISIBLE, true);
                }
                if (mSharedElementBundle != null) {
                    delayCancel();
                }
                super.onTransitionEnd(transition);
            }
        });
    }
    return viewsTransition;
}
Also used : Transition(android.transition.Transition) View(android.view.View)

Example 70 with Transition

use of android.transition.Transition in project android_frameworks_base by DirtyUnicorns.

the class BackStackRecord method addTargets.

/**
     * This method adds views as targets to the transition, but only if the transition
     * doesn't already have a target. It is best for views to contain one View object
     * that does not exist in the view hierarchy (state.nonExistentView) so that
     * when they are removed later, a list match will suffice to remove the targets.
     * Otherwise, if you happened to have targeted the exact views for the transition,
     * the removeTargets call will remove them unexpectedly.
     */
public static void addTargets(Transition transition, ArrayList<View> views) {
    if (transition instanceof TransitionSet) {
        TransitionSet set = (TransitionSet) transition;
        int numTransitions = set.getTransitionCount();
        for (int i = 0; i < numTransitions; i++) {
            Transition child = set.getTransitionAt(i);
            addTargets(child, views);
        }
    } else if (!hasSimpleTarget(transition)) {
        List<View> targets = transition.getTargets();
        if (isNullOrEmpty(targets)) {
            // We can just add the target views
            int numViews = views.size();
            for (int i = 0; i < numViews; i++) {
                transition.addTarget(views.get(i));
            }
        }
    }
}
Also used : TransitionSet(android.transition.TransitionSet) Transition(android.transition.Transition) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

Transition (android.transition.Transition)176 TransitionSet (android.transition.TransitionSet)62 View (android.view.View)54 ViewGroup (android.view.ViewGroup)37 ArrayList (java.util.ArrayList)23 TransitionInflater (android.transition.TransitionInflater)19 Fade (android.transition.Fade)18 ViewTreeObserver (android.view.ViewTreeObserver)18 ChangeBounds (android.transition.ChangeBounds)17 Rect (android.graphics.Rect)12 List (java.util.List)12 TargetApi (android.annotation.TargetApi)11 TextView (android.widget.TextView)11 AutoTransition (android.transition.AutoTransition)10 Scene (android.transition.Scene)8 ObjectAnimator (android.animation.ObjectAnimator)7 Fragment (android.support.v4.app.Fragment)6 FragmentTransaction (android.support.v4.app.FragmentTransaction)6 AdapterView (android.widget.AdapterView)6 ImageView (android.widget.ImageView)6