IntArrayEvaluatorpublic class IntArrayEvaluator extends Object implements TypeEvaluatorThis evaluator can be used to perform type interpolation between int[] values.
Each index into the array is treated as a separate value to interpolate. For example,
evaluating {100, 200} and {300, 400} will interpolate the value at
the first index between 100 and 300 and the value at the second index value between 200 and 400. |
Fields Summary |
---|
private int[] | mArray |
Constructors Summary |
---|
public IntArrayEvaluator()Create an IntArrayEvaluator that does not reuse the animated value. Care must be taken
when using this option because on every evaluation a new int[] will be
allocated.
| public IntArrayEvaluator(int[] reuseArray)Create an IntArrayEvaluator that reuses reuseArray for every evaluate() call.
Caution must be taken to ensure that the value returned from
{@link android.animation.ValueAnimator#getAnimatedValue()} is not cached, modified, or
used across threads. The value will be modified on each evaluate() call.
mArray = reuseArray;
|
Methods Summary |
---|
public int[] | evaluate(float fraction, int[] startValue, int[] endValue)Interpolates the value at each index by the fraction. If {@link #IntArrayEvaluator(int[])}
was used to construct this object, reuseArray will be returned, otherwise
a new int[] will be returned.
int[] array = mArray;
if (array == null) {
array = new int[startValue.length];
}
for (int i = 0; i < array.length; i++) {
int start = startValue[i];
int end = endValue[i];
array[i] = (int) (start + (fraction * (end - start)));
}
return array;
|
|