FileDocCategorySizeDatePackage
IntArrayEvaluator.javaAPI DocAndroid 5.1 API2984Thu Mar 12 22:22:08 GMT 2015android.animation

IntArrayEvaluator

public class IntArrayEvaluator extends Object implements TypeEvaluator
This 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.

see
#IntArrayEvaluator(int[])

    
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.

param
reuseArray The array to modify and return from evaluate.

        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.

param
fraction The fraction from the starting to the ending values
param
startValue The start value.
param
endValue The end value.
return
An int[] where each element is an interpolation between the same index in startValue and endValue.

        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;