summaryrefslogtreecommitdiff
path: root/core/java/android/transition/TransitionUtils.java
diff options
context:
space:
mode:
authorDake Gu <dake@google.com>2014-07-22 14:53:53 -0700
committerGeorge Mount <mount@google.com>2014-08-21 15:50:17 -0700
commitc94e2b393f6eba684ee2c84eaa50746fc1459d0f (patch)
treea975f657cdefffa64c8f381fd11c445bc815ca37 /core/java/android/transition/TransitionUtils.java
parentb89d5cc2c64112a0ff7e66e4dd3bb2114caed935 (diff)
Add Parent Change to ChangeTransform
Bug 16460123 Modified ChangeTransform to support any pivot changes. Modified ChangeTransform to support changes between parents. Change-Id: I6374890dab9f3d795f334b951bdb9d51d434b8ee
Diffstat (limited to 'core/java/android/transition/TransitionUtils.java')
-rw-r--r--core/java/android/transition/TransitionUtils.java23
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;
+ }
+ }
}