diff options
Diffstat (limited to 'core/java/android/transition/TransitionUtils.java')
| -rw-r--r-- | core/java/android/transition/TransitionUtils.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/transition/TransitionUtils.java b/core/java/android/transition/TransitionUtils.java index 931d46a53187..b0c9e9adec22 100644 --- a/core/java/android/transition/TransitionUtils.java +++ b/core/java/android/transition/TransitionUtils.java @@ -18,6 +18,8 @@ package android.transition; import android.animation.Animator; import android.animation.AnimatorSet; +import android.animation.TypeEvaluator; +import android.graphics.Matrix; /** * Static utility methods for Transitions. @@ -37,4 +39,25 @@ public class TransitionUtils { return animatorSet; } } + + public static class MatrixEvaluator implements TypeEvaluator<Matrix> { + + float[] mTempStartValues = new float[9]; + + float[] mTempEndValues = new float[9]; + + Matrix mTempMatrix = new Matrix(); + + @Override + public Matrix evaluate(float fraction, Matrix startValue, Matrix endValue) { + startValue.getValues(mTempStartValues); + endValue.getValues(mTempEndValues); + for (int i = 0; i < 9; i++) { + float diff = mTempEndValues[i] - mTempStartValues[i]; + mTempEndValues[i] = mTempStartValues[i] + (fraction * diff); + } + mTempMatrix.setValues(mTempEndValues); + return mTempMatrix; + } + } } |
