double values.
- */
-public class DoubleEvaluator implements TypeEvaluator {
- /**
- * This function returns the result of linearly interpolating the start and end values, with
- * fraction representing the proportion between the start and end values. The
- * calculation is a simple parametric calculation: result = x0 + t * (v1 - v0),
- * where x0 is startValue, x1 is endValue,
- * and t is fraction.
- *
- * @param fraction The fraction from the starting to the ending values
- * @param startValue The start value; should be of type double or
- * Double
- * @param endValue The end value; should be of type double or
- * Double
- * @return A linear interpolation between the start and end values, given the
- * fraction parameter.
- */
- public Object evaluate(float fraction, Object startValue, Object endValue) {
- double startDouble = ((Number) startValue).doubleValue();
- return startDouble + fraction * (((Number) endValue).doubleValue() - startDouble);
- }
-}
\ No newline at end of file
diff --git a/core/java/android/animation/FloatKeyframeSet.java b/core/java/android/animation/FloatKeyframeSet.java
index 6fad4a68e18ba..4009f139db735 100644
--- a/core/java/android/animation/FloatKeyframeSet.java
+++ b/core/java/android/animation/FloatKeyframeSet.java
@@ -25,8 +25,8 @@ import java.util.ArrayList;
* 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.
*
- * This type-specific subclass of KeyframeSet, along with the other type-specific subclasses for - * int, long, and double, exists to speed up the getValue() method when there is no custom + *
This type-specific subclass of KeyframeSet, along with the other type-specific subclass for + * int, exists to speed up the getValue() method when there is no custom * TypeEvaluator set for the animation, so that values can be calculated without autoboxing to the * Object equivalents of these primitive types.
*/ diff --git a/core/java/android/animation/IntKeyframeSet.java b/core/java/android/animation/IntKeyframeSet.java index 14a4e3aacc247..5629c5ef97835 100644 --- a/core/java/android/animation/IntKeyframeSet.java +++ b/core/java/android/animation/IntKeyframeSet.java @@ -25,8 +25,8 @@ import java.util.ArrayList; * 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. * - *This type-specific subclass of KeyframeSet, along with the other type-specific subclasses for - * float, long, and double, exists to speed up the getValue() method when there is no custom + *
This type-specific subclass of KeyframeSet, along with the other type-specific subclass for + * float, exists to speed up the getValue() method when there is no custom * TypeEvaluator set for the animation, so that values can be calculated without autoboxing to the * Object equivalents of these primitive types.
*/ diff --git a/core/java/android/animation/PropertyValuesHolder.java b/core/java/android/animation/PropertyValuesHolder.java index 0254924ca4a7c..0c30aadea9539 100644 --- a/core/java/android/animation/PropertyValuesHolder.java +++ b/core/java/android/animation/PropertyValuesHolder.java @@ -67,10 +67,9 @@ public class PropertyValuesHolder implements Cloneable { KeyframeSet mKeyframeSet = null; - // type evaluators for the three primitive types handled by this implementation + // type evaluators for the primitive types handled by this implementation private static final TypeEvaluator sIntEvaluator = new IntEvaluator(); private static final TypeEvaluator sFloatEvaluator = new FloatEvaluator(); - private static final TypeEvaluator sDoubleEvaluator = new DoubleEvaluator(); // We try several different types when searching for appropriate setter/getter functions. // The caller may have supplied values in a type that does not match the setter/getter @@ -104,7 +103,7 @@ public class PropertyValuesHolder implements Cloneable { /** * The type evaluator used to calculate the animated values. This evaluator is determined * automatically based on the type of the start/end objects passed into the constructor, - * but the system only knows about the primitive types int, double, and float. Any other + * but the system only knows about the primitive types int and float. Any other * type will need to set the evaluator to a custom evaluator for that type. */ private TypeEvaluator mEvaluator; @@ -501,7 +500,7 @@ public class PropertyValuesHolder implements Cloneable { */ void init() { if (mEvaluator == null) { - // We already handle int, float, long, double automatically, but not their Object + // We already handle int and float automatically, but not their Object // equivalents mEvaluator = (mValueType == Integer.class) ? sIntEvaluator : (mValueType == Float.class) ? sFloatEvaluator : @@ -509,7 +508,7 @@ public class PropertyValuesHolder implements Cloneable { } if (mEvaluator != null) { // KeyframeSet knows how to evaluate the common types - only give it a custom - // evaulator if one has been set on this class + // evaluator if one has been set on this class mKeyframeSet.setEvaluator(mEvaluator); } } @@ -520,7 +519,7 @@ public class PropertyValuesHolder implements Cloneable { * desired. This may be important in cases where either the type of the values supplied * do not match the way that they should be interpolated between, or if the values * are of a custom type or one not currently understood by the animation system. Currently, - * only values of type float, double, and int (and their Object equivalents, Float, Double, + * only values of type float and int (and their Object equivalents: Float * and Integer) are correctly interpolated; all other types require setting a TypeEvaluator. * @param evaluator */ diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index f8844733f9d21..1590bf42c2ca9 100755 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -143,10 +143,9 @@ public class ValueAnimator extends Animator { private static final TimeInterpolator sDefaultInterpolator = new AccelerateDecelerateInterpolator(); - // type evaluators for the three primitive types handled by this implementation + // type evaluators for the primitive types handled by this implementation private static final TypeEvaluator sIntEvaluator = new IntEvaluator(); private static final TypeEvaluator sFloatEvaluator = new FloatEvaluator(); - private static final TypeEvaluator sDoubleEvaluator = new DoubleEvaluator(); /** * Used to indicate whether the animation is currently playing in reverse. This causes the @@ -858,7 +857,7 @@ public class ValueAnimator extends Animator { /** * The type evaluator to be used when calculating the animated values of this animation. - * The system will automatically assign a float, int, or double evaluator based on the type + * The system will automatically assign a float or int evaluator based on the type * ofstartValue and endValue in the constructor. But if these values
* are not one of these primitive types, or if different evaluation is desired (such as is
* necessary with int values that represent colors), a custom evaluator needs to be assigned.