FileDocCategorySizeDatePackage
FloatArrayEvaluator.javaAPI DocAndroid 5.1 API3027Thu Mar 12 22:22:08 GMT 2015android.animation

FloatArrayEvaluator

public class FloatArrayEvaluator extends Object implements TypeEvaluator
This evaluator can be used to perform type interpolation between float[] 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 float[]
mArray
Constructors Summary
public FloatArrayEvaluator()
Create a FloatArrayEvaluator that does not reuse the animated value. Care must be taken when using this option because on every evaluation a new float[] will be allocated.

see
#FloatArrayEvaluator(float[])

    
public FloatArrayEvaluator(float[] reuseArray)
Create a FloatArrayEvaluator 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 float[]evaluate(float fraction, float[] startValue, float[] endValue)
Interpolates the value at each index by the fraction. If {@link #FloatArrayEvaluator(float[])} was used to construct this object, reuseArray will be returned, otherwise a new float[] 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
A float[] where each element is an interpolation between the same index in startValue and endValue.

        float[] array = mArray;
        if (array == null) {
            array = new float[startValue.length];
        }

        for (int i = 0; i < array.length; i++) {
            float start = startValue[i];
            float end = endValue[i];
            array[i] = start + (fraction * (end - start));
        }
        return array;