summaryrefslogtreecommitdiffstats
path: root/core/java/android/animation/KeyframeSet.java
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2014-08-21 14:28:01 -0700
committerGeorge Mount <mount@google.com>2014-08-29 16:02:28 -0700
commit984011f6850fd4b6ad4db6d6022bd475d7a2c712 (patch)
tree1a621beda464056d7671b675ae228b9465f555f5 /core/java/android/animation/KeyframeSet.java
parentc9991c7149ccd320200ad62ac0036fe57c5cc831 (diff)
downloadframeworks_base-984011f6850fd4b6ad4db6d6022bd475d7a2c712.zip
frameworks_base-984011f6850fd4b6ad4db6d6022bd475d7a2c712.tar.gz
frameworks_base-984011f6850fd4b6ad4db6d6022bd475d7a2c712.tar.bz2
Use optimized Keyframes for Path animations.
Bug 17005728 Change-Id: I2e109ed1a3e768e1e0286fc3950516f16509e591
Diffstat (limited to 'core/java/android/animation/KeyframeSet.java')
-rw-r--r--core/java/android/animation/KeyframeSet.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/core/java/android/animation/KeyframeSet.java b/core/java/android/animation/KeyframeSet.java
index a3db3a1..fc9bbb1 100644
--- a/core/java/android/animation/KeyframeSet.java
+++ b/core/java/android/animation/KeyframeSet.java
@@ -21,6 +21,7 @@ import java.util.Arrays;
import android.animation.Keyframe.IntKeyframe;
import android.animation.Keyframe.FloatKeyframe;
import android.animation.Keyframe.ObjectKeyframe;
+import android.graphics.Path;
import android.util.Log;
/**
@@ -28,7 +29,7 @@ import android.util.Log;
* values between those keyframes for a given animation. The class internal to the animation
* package because it is an implementation detail of how Keyframes are stored and used.
*/
-class KeyframeSet {
+class KeyframeSet implements Keyframes {
int mNumKeyframes;
@@ -52,7 +53,12 @@ class KeyframeSet {
* If subclass has variables that it calculates based on the Keyframes, it should reset them
* when this method is called because Keyframe contents might have changed.
*/
- void invalidateCache() {
+ @Override
+ public void invalidateCache() {
+ }
+
+ public ArrayList<Keyframe> getKeyframes() {
+ return mKeyframes;
}
public static KeyframeSet ofInt(int... values) {
@@ -144,6 +150,10 @@ class KeyframeSet {
return new KeyframeSet(keyframes);
}
+ public static PathKeyframes ofPath(Path path) {
+ return new PathKeyframes(path);
+ }
+
/**
* Sets the TypeEvaluator to be used when calculating animated values. This object
* is required only for KeyframeSets that are not either IntKeyframeSet or FloatKeyframeSet,
@@ -157,6 +167,11 @@ class KeyframeSet {
}
@Override
+ public Class getType() {
+ return mFirstKeyframe.getType();
+ }
+
+ @Override
public KeyframeSet clone() {
ArrayList<Keyframe> keyframes = mKeyframes;
int numKeyframes = mKeyframes.size();