Loading core/java/android/transition/Explode.java +2 −2 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ public class Explode extends Visibility { float startY = endY + mTempLoc[1]; return TranslationAnimationCreator.createAnimation(view, endValues, bounds.left, bounds.top, startX, startY, endX, endY, sDecelerate); startX, startY, endX, endY, sDecelerate, this); } @Override Loading Loading @@ -119,7 +119,7 @@ public class Explode extends Visibility { endY += mTempLoc[1]; return TranslationAnimationCreator.createAnimation(view, startValues, viewPosX, viewPosY, startX, startY, endX, endY, sAccelerate); viewPosX, viewPosY, startX, startY, endX, endY, sAccelerate, this); } private void calculateOut(View sceneRoot, Rect bounds, int[] outVector) { Loading core/java/android/transition/Slide.java +2 −2 Original line number Diff line number Diff line Loading @@ -231,7 +231,7 @@ public class Slide extends Visibility { float startY = mSlideCalculator.getGoneY(sceneRoot, view); return TranslationAnimationCreator .createAnimation(view, endValues, position[0], position[1], startX, startY, endX, endY, sDecelerate); startX, startY, endX, endY, sDecelerate, this); } @Override Loading @@ -247,6 +247,6 @@ public class Slide extends Visibility { float endY = mSlideCalculator.getGoneY(sceneRoot, view); return TranslationAnimationCreator .createAnimation(view, startValues, position[0], position[1], startX, startY, endX, endY, sAccelerate); startX, startY, endX, endY, sAccelerate, this); } } core/java/android/transition/TranslationAnimationCreator.java +28 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.graphics.Path; import android.transition.Transition.TransitionListener; import android.view.View; /** Loading @@ -48,7 +49,8 @@ class TranslationAnimationCreator { * a previous interruption, in which case it moves from the current position to (endX, endY). */ static Animator createAnimation(View view, TransitionValues values, int viewPosX, int viewPosY, float startX, float startY, float endX, float endY, TimeInterpolator interpolator) { float startX, float startY, float endX, float endY, TimeInterpolator interpolator, Transition transition) { float terminalX = view.getTranslationX(); float terminalY = view.getTranslationY(); int[] startPosition = (int[]) values.view.getTag(R.id.transitionPosition); Loading @@ -73,13 +75,15 @@ class TranslationAnimationCreator { TransitionPositionListener listener = new TransitionPositionListener(view, values.view, startPosX, startPosY, terminalX, terminalY); transition.addListener(listener); anim.addListener(listener); anim.addPauseListener(listener); anim.setInterpolator(interpolator); return anim; } private static class TransitionPositionListener extends AnimatorListenerAdapter { private static class TransitionPositionListener extends AnimatorListenerAdapter implements TransitionListener { private final View mViewInHierarchy; private final View mMovingView; Loading Loading @@ -117,8 +121,6 @@ class TranslationAnimationCreator { @Override public void onAnimationEnd(Animator animator) { mMovingView.setTranslationX(mTerminalX); mMovingView.setTranslationY(mTerminalY); } @Override Loading @@ -134,6 +136,28 @@ class TranslationAnimationCreator { mMovingView.setTranslationX(mPausedX); mMovingView.setTranslationY(mPausedY); } @Override public void onTransitionStart(Transition transition) { } @Override public void onTransitionEnd(Transition transition) { mMovingView.setTranslationX(mTerminalX); mMovingView.setTranslationY(mTerminalY); } @Override public void onTransitionCancel(Transition transition) { } @Override public void onTransitionPause(Transition transition) { } @Override public void onTransitionResume(Transition transition) { } } } Loading
core/java/android/transition/Explode.java +2 −2 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ public class Explode extends Visibility { float startY = endY + mTempLoc[1]; return TranslationAnimationCreator.createAnimation(view, endValues, bounds.left, bounds.top, startX, startY, endX, endY, sDecelerate); startX, startY, endX, endY, sDecelerate, this); } @Override Loading Loading @@ -119,7 +119,7 @@ public class Explode extends Visibility { endY += mTempLoc[1]; return TranslationAnimationCreator.createAnimation(view, startValues, viewPosX, viewPosY, startX, startY, endX, endY, sAccelerate); viewPosX, viewPosY, startX, startY, endX, endY, sAccelerate, this); } private void calculateOut(View sceneRoot, Rect bounds, int[] outVector) { Loading
core/java/android/transition/Slide.java +2 −2 Original line number Diff line number Diff line Loading @@ -231,7 +231,7 @@ public class Slide extends Visibility { float startY = mSlideCalculator.getGoneY(sceneRoot, view); return TranslationAnimationCreator .createAnimation(view, endValues, position[0], position[1], startX, startY, endX, endY, sDecelerate); startX, startY, endX, endY, sDecelerate, this); } @Override Loading @@ -247,6 +247,6 @@ public class Slide extends Visibility { float endY = mSlideCalculator.getGoneY(sceneRoot, view); return TranslationAnimationCreator .createAnimation(view, startValues, position[0], position[1], startX, startY, endX, endY, sAccelerate); startX, startY, endX, endY, sAccelerate, this); } }
core/java/android/transition/TranslationAnimationCreator.java +28 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.graphics.Path; import android.transition.Transition.TransitionListener; import android.view.View; /** Loading @@ -48,7 +49,8 @@ class TranslationAnimationCreator { * a previous interruption, in which case it moves from the current position to (endX, endY). */ static Animator createAnimation(View view, TransitionValues values, int viewPosX, int viewPosY, float startX, float startY, float endX, float endY, TimeInterpolator interpolator) { float startX, float startY, float endX, float endY, TimeInterpolator interpolator, Transition transition) { float terminalX = view.getTranslationX(); float terminalY = view.getTranslationY(); int[] startPosition = (int[]) values.view.getTag(R.id.transitionPosition); Loading @@ -73,13 +75,15 @@ class TranslationAnimationCreator { TransitionPositionListener listener = new TransitionPositionListener(view, values.view, startPosX, startPosY, terminalX, terminalY); transition.addListener(listener); anim.addListener(listener); anim.addPauseListener(listener); anim.setInterpolator(interpolator); return anim; } private static class TransitionPositionListener extends AnimatorListenerAdapter { private static class TransitionPositionListener extends AnimatorListenerAdapter implements TransitionListener { private final View mViewInHierarchy; private final View mMovingView; Loading Loading @@ -117,8 +121,6 @@ class TranslationAnimationCreator { @Override public void onAnimationEnd(Animator animator) { mMovingView.setTranslationX(mTerminalX); mMovingView.setTranslationY(mTerminalY); } @Override Loading @@ -134,6 +136,28 @@ class TranslationAnimationCreator { mMovingView.setTranslationX(mPausedX); mMovingView.setTranslationY(mPausedY); } @Override public void onTransitionStart(Transition transition) { } @Override public void onTransitionEnd(Transition transition) { mMovingView.setTranslationX(mTerminalX); mMovingView.setTranslationY(mTerminalY); } @Override public void onTransitionCancel(Transition transition) { } @Override public void onTransitionPause(Transition transition) { } @Override public void onTransitionResume(Transition transition) { } } }