am 727a6cf6: Fix blink in Explode transition.
* commit '727a6cf6ad06bbb43c0c309c33776394a0012895': Fix blink in Explode transition.
This commit is contained in:
@@ -90,7 +90,7 @@ public class Explode extends Visibility {
|
|||||||
float startY = endY + mTempLoc[1];
|
float startY = endY + mTempLoc[1];
|
||||||
|
|
||||||
return TranslationAnimationCreator.createAnimation(view, endValues, bounds.left, bounds.top,
|
return TranslationAnimationCreator.createAnimation(view, endValues, bounds.left, bounds.top,
|
||||||
startX, startY, endX, endY, sDecelerate);
|
startX, startY, endX, endY, sDecelerate, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -119,7 +119,7 @@ public class Explode extends Visibility {
|
|||||||
endY += mTempLoc[1];
|
endY += mTempLoc[1];
|
||||||
|
|
||||||
return TranslationAnimationCreator.createAnimation(view, startValues,
|
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) {
|
private void calculateOut(View sceneRoot, Rect bounds, int[] outVector) {
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ public class Slide extends Visibility {
|
|||||||
float startY = mSlideCalculator.getGoneY(sceneRoot, view);
|
float startY = mSlideCalculator.getGoneY(sceneRoot, view);
|
||||||
return TranslationAnimationCreator
|
return TranslationAnimationCreator
|
||||||
.createAnimation(view, endValues, position[0], position[1],
|
.createAnimation(view, endValues, position[0], position[1],
|
||||||
startX, startY, endX, endY, sDecelerate);
|
startX, startY, endX, endY, sDecelerate, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -247,6 +247,6 @@ public class Slide extends Visibility {
|
|||||||
float endY = mSlideCalculator.getGoneY(sceneRoot, view);
|
float endY = mSlideCalculator.getGoneY(sceneRoot, view);
|
||||||
return TranslationAnimationCreator
|
return TranslationAnimationCreator
|
||||||
.createAnimation(view, startValues, position[0], position[1],
|
.createAnimation(view, startValues, position[0], position[1],
|
||||||
startX, startY, endX, endY, sAccelerate);
|
startX, startY, endX, endY, sAccelerate, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import android.animation.AnimatorListenerAdapter;
|
|||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.animation.TimeInterpolator;
|
import android.animation.TimeInterpolator;
|
||||||
import android.graphics.Path;
|
import android.graphics.Path;
|
||||||
|
import android.transition.Transition.TransitionListener;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,7 +49,8 @@ class TranslationAnimationCreator {
|
|||||||
* a previous interruption, in which case it moves from the current position to (endX, endY).
|
* 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,
|
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 terminalX = view.getTranslationX();
|
||||||
float terminalY = view.getTranslationY();
|
float terminalY = view.getTranslationY();
|
||||||
int[] startPosition = (int[]) values.view.getTag(R.id.transitionPosition);
|
int[] startPosition = (int[]) values.view.getTag(R.id.transitionPosition);
|
||||||
@@ -73,13 +75,15 @@ class TranslationAnimationCreator {
|
|||||||
|
|
||||||
TransitionPositionListener listener = new TransitionPositionListener(view, values.view,
|
TransitionPositionListener listener = new TransitionPositionListener(view, values.view,
|
||||||
startPosX, startPosY, terminalX, terminalY);
|
startPosX, startPosY, terminalX, terminalY);
|
||||||
|
transition.addListener(listener);
|
||||||
anim.addListener(listener);
|
anim.addListener(listener);
|
||||||
anim.addPauseListener(listener);
|
anim.addPauseListener(listener);
|
||||||
anim.setInterpolator(interpolator);
|
anim.setInterpolator(interpolator);
|
||||||
return anim;
|
return anim;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class TransitionPositionListener extends AnimatorListenerAdapter {
|
private static class TransitionPositionListener extends AnimatorListenerAdapter implements
|
||||||
|
TransitionListener {
|
||||||
|
|
||||||
private final View mViewInHierarchy;
|
private final View mViewInHierarchy;
|
||||||
private final View mMovingView;
|
private final View mMovingView;
|
||||||
@@ -117,8 +121,6 @@ class TranslationAnimationCreator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationEnd(Animator animator) {
|
public void onAnimationEnd(Animator animator) {
|
||||||
mMovingView.setTranslationX(mTerminalX);
|
|
||||||
mMovingView.setTranslationY(mTerminalY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -134,6 +136,28 @@ class TranslationAnimationCreator {
|
|||||||
mMovingView.setTranslationX(mPausedX);
|
mMovingView.setTranslationX(mPausedX);
|
||||||
mMovingView.setTranslationY(mPausedY);
|
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) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user