Search in sources :

Example 1 with ChangeTransform

use of com.transitionseverywhere.ChangeTransform in project Douya by DreaminginCodeZH.

the class NavigationHeaderLayout method addChangeMoveToAvatarTransformToTransitionSet.

private void addChangeMoveToAvatarTransformToTransitionSet(ImageView moveFromAvatarImage, ImageView moveToAvatarImage, TransitionSet transitionSet) {
    ChangeTransform changeMoveToAvatarTransform = new ChangeTransform();
    moveToAvatarImage.setX(moveFromAvatarImage.getLeft() + (moveFromAvatarImage.getWidth() - moveToAvatarImage.getWidth()) / 2);
    moveToAvatarImage.setY(moveFromAvatarImage.getTop() + (moveFromAvatarImage.getHeight() - moveToAvatarImage.getHeight()) / 2);
    moveToAvatarImage.setScaleX((float) ViewUtils.getWidthExcludingPadding(moveFromAvatarImage) / ViewUtils.getWidthExcludingPadding(moveToAvatarImage));
    moveToAvatarImage.setScaleY((float) ViewUtils.getHeightExcludingPadding(moveFromAvatarImage) / ViewUtils.getHeightExcludingPadding(moveToAvatarImage));
    changeMoveToAvatarTransform.addTarget(moveToAvatarImage);
    transitionSet.addTransition(changeMoveToAvatarTransform);
}
Also used : ChangeTransform(com.transitionseverywhere.ChangeTransform)

Example 2 with ChangeTransform

use of com.transitionseverywhere.ChangeTransform in project Douya by DreaminginCodeZH.

the class NavigationHeaderLayout method beginAvatarTransition.

private void beginAvatarTransition(ImageView moveAvatarOneImage, ImageView moveAvatarTwoImage, ImageView moveAvatarThreeImage) {
    ImageView appearAvatarImage = moveAvatarOneImage;
    ImageView disappearAvatarImage = moveAvatarThreeImage != null ? moveAvatarThreeImage : moveAvatarTwoImage;
    ImageView fadeOutDisappearAvatarImage = disappearAvatarImage == mAvatarImage ? mFadeOutAvatarImage : disappearAvatarImage == mRecentOneAvatarImage ? mFadeOutRecentOneAvatarImage : mFadeOutRecentTwoAvatarImage;
    TransitionSet transitionSet = new TransitionSet();
    int duration = ViewUtils.getLongAnimTime(getContext());
    // Will be set on already added and newly added transitions.
    transitionSet.setDuration(duration);
    // NOTE: TransitionSet.setInterpolator() won't have any effect on platform versions.
    // https://code.google.com/p/android/issues/detail?id=195495
    transitionSet.setInterpolator(new FastOutSlowInInterpolator());
    Fade fadeOutAvatar = new Fade(Fade.OUT);
    setAvatarImageFrom(fadeOutDisappearAvatarImage, disappearAvatarImage);
    fadeOutDisappearAvatarImage.setVisibility(VISIBLE);
    fadeOutAvatar.addTarget(fadeOutDisappearAvatarImage);
    transitionSet.addTransition(fadeOutAvatar);
    // Make it finish before new avatar arrives.
    fadeOutAvatar.setDuration(duration / 2);
    Fade fadeInAvatar = new Fade(Fade.IN);
    appearAvatarImage.setVisibility(INVISIBLE);
    fadeInAvatar.addTarget(appearAvatarImage);
    transitionSet.addTransition(fadeInAvatar);
    ChangeTransform changeAppearAvatarTransform = new ChangeTransform();
    appearAvatarImage.setScaleX(0.8f);
    appearAvatarImage.setScaleY(0.8f);
    changeAppearAvatarTransform.addTarget(appearAvatarImage);
    transitionSet.addTransition(changeAppearAvatarTransform);
    addChangeMoveToAvatarTransformToTransitionSet(moveAvatarOneImage, moveAvatarTwoImage, transitionSet);
    if (moveAvatarThreeImage != null) {
        addChangeMoveToAvatarTransformToTransitionSet(moveAvatarTwoImage, moveAvatarThreeImage, transitionSet);
    }
    CrossfadeText crossfadeText = new CrossfadeText();
    crossfadeText.addTarget(mNameText);
    crossfadeText.addTarget(mDescriptionText);
    transitionSet.addTransition(crossfadeText);
    transitionSet.addListener(new Transition.TransitionListenerAdapter() {

        @Override
        public void onTransitionEnd(Transition transition) {
            mAccountTransitionRunning = false;
            mInfoLayout.setEnabled(true);
            if (mListener != null) {
                mListener.onAccountTransitionEnd();
            }
        }
    });
    mInfoLayout.setEnabled(false);
    TransitionManager.beginDelayedTransition(this, transitionSet);
    mAccountTransitionRunning = true;
    if (mListener != null) {
        mListener.onAccountTransitionStart();
    }
    fadeOutDisappearAvatarImage.setVisibility(INVISIBLE);
    appearAvatarImage.setVisibility(VISIBLE);
    appearAvatarImage.setScaleX(1);
    appearAvatarImage.setScaleY(1);
    resetMoveToAvatarTransform(moveAvatarTwoImage);
    if (moveAvatarThreeImage != null) {
        resetMoveToAvatarTransform(moveAvatarThreeImage);
    }
}
Also used : CrossfadeText(me.zhanghai.android.douya.ui.CrossfadeText) ChangeTransform(com.transitionseverywhere.ChangeTransform) TransitionSet(com.transitionseverywhere.TransitionSet) FastOutSlowInInterpolator(android.support.v4.view.animation.FastOutSlowInInterpolator) Transition(com.transitionseverywhere.Transition) ImageView(android.widget.ImageView) Fade(com.transitionseverywhere.Fade)

Aggregations

ChangeTransform (com.transitionseverywhere.ChangeTransform)2 FastOutSlowInInterpolator (android.support.v4.view.animation.FastOutSlowInInterpolator)1 ImageView (android.widget.ImageView)1 Fade (com.transitionseverywhere.Fade)1 Transition (com.transitionseverywhere.Transition)1 TransitionSet (com.transitionseverywhere.TransitionSet)1 CrossfadeText (me.zhanghai.android.douya.ui.CrossfadeText)1