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);
}
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);
}
}
Aggregations