am 1928bcbc: am 1d7b3dc1: Merge "Make LayoutTransition.setInterpolator() actually do something" into klp-dev

* commit '1928bcbcc116e264a734aede72aae6d886366a06':
  Make LayoutTransition.setInterpolator() actually do something
This commit is contained in:
Chet Haase
2013-10-10 11:29:13 -07:00
committed by Android Git Automerger

View File

@@ -190,14 +190,26 @@ public class LayoutTransition {
private long mChangingDisappearingStagger = 0; private long mChangingDisappearingStagger = 0;
private long mChangingStagger = 0; private long mChangingStagger = 0;
/**
* Static interpolators - these are stateless and can be shared across the instances
*/
private static TimeInterpolator ACCEL_DECEL_INTERPOLATOR =
new AccelerateDecelerateInterpolator();
private static TimeInterpolator DECEL_INTERPOLATOR = new DecelerateInterpolator();
private static TimeInterpolator sAppearingInterpolator = ACCEL_DECEL_INTERPOLATOR;
private static TimeInterpolator sDisappearingInterpolator = ACCEL_DECEL_INTERPOLATOR;
private static TimeInterpolator sChangingAppearingInterpolator = DECEL_INTERPOLATOR;
private static TimeInterpolator sChangingDisappearingInterpolator = DECEL_INTERPOLATOR;
private static TimeInterpolator sChangingInterpolator = DECEL_INTERPOLATOR;
/** /**
* The default interpolators used for the animations * The default interpolators used for the animations
*/ */
private TimeInterpolator mAppearingInterpolator = new AccelerateDecelerateInterpolator(); private TimeInterpolator mAppearingInterpolator = sAppearingInterpolator;
private TimeInterpolator mDisappearingInterpolator = new AccelerateDecelerateInterpolator(); private TimeInterpolator mDisappearingInterpolator = sDisappearingInterpolator;
private TimeInterpolator mChangingAppearingInterpolator = new DecelerateInterpolator(); private TimeInterpolator mChangingAppearingInterpolator = sChangingAppearingInterpolator;
private TimeInterpolator mChangingDisappearingInterpolator = new DecelerateInterpolator(); private TimeInterpolator mChangingDisappearingInterpolator = sChangingDisappearingInterpolator;
private TimeInterpolator mChangingInterpolator = new DecelerateInterpolator(); private TimeInterpolator mChangingInterpolator = sChangingInterpolator;
/** /**
* These hashmaps are used to store the animations that are currently running as part of * These hashmaps are used to store the animations that are currently running as part of
@@ -905,14 +917,24 @@ public class LayoutTransition {
case APPEARING: case APPEARING:
startDelay = mChangingAppearingDelay + staggerDelay; startDelay = mChangingAppearingDelay + staggerDelay;
staggerDelay += mChangingAppearingStagger; staggerDelay += mChangingAppearingStagger;
if (mChangingAppearingInterpolator != sChangingAppearingInterpolator) {
anim.setInterpolator(mChangingAppearingInterpolator);
}
break; break;
case DISAPPEARING: case DISAPPEARING:
startDelay = mChangingDisappearingDelay + staggerDelay; startDelay = mChangingDisappearingDelay + staggerDelay;
staggerDelay += mChangingDisappearingStagger; staggerDelay += mChangingDisappearingStagger;
if (mChangingDisappearingInterpolator !=
sChangingDisappearingInterpolator) {
anim.setInterpolator(mChangingDisappearingInterpolator);
}
break; break;
case CHANGING: case CHANGING:
startDelay = mChangingDelay + staggerDelay; startDelay = mChangingDelay + staggerDelay;
staggerDelay += mChangingStagger; staggerDelay += mChangingStagger;
if (mChangingInterpolator != sChangingInterpolator) {
anim.setInterpolator(mChangingInterpolator);
}
break; break;
} }
anim.setStartDelay(startDelay); anim.setStartDelay(startDelay);
@@ -1148,6 +1170,9 @@ public class LayoutTransition {
anim.setTarget(child); anim.setTarget(child);
anim.setStartDelay(mAppearingDelay); anim.setStartDelay(mAppearingDelay);
anim.setDuration(mAppearingDuration); anim.setDuration(mAppearingDuration);
if (mAppearingInterpolator != sAppearingInterpolator) {
anim.setInterpolator(mAppearingInterpolator);
}
if (anim instanceof ObjectAnimator) { if (anim instanceof ObjectAnimator) {
((ObjectAnimator) anim).setCurrentPlayTime(0); ((ObjectAnimator) anim).setCurrentPlayTime(0);
} }
@@ -1192,6 +1217,9 @@ public class LayoutTransition {
Animator anim = mDisappearingAnim.clone(); Animator anim = mDisappearingAnim.clone();
anim.setStartDelay(mDisappearingDelay); anim.setStartDelay(mDisappearingDelay);
anim.setDuration(mDisappearingDuration); anim.setDuration(mDisappearingDuration);
if (mDisappearingInterpolator != sDisappearingInterpolator) {
anim.setInterpolator(mDisappearingInterpolator);
}
anim.setTarget(child); anim.setTarget(child);
final float preAnimAlpha = child.getAlpha(); final float preAnimAlpha = child.getAlpha();
anim.addListener(new AnimatorListenerAdapter() { anim.addListener(new AnimatorListenerAdapter() {