package com.cheng.animationstudy.customevaluator; import android.animation.TypeEvaluator; import android.graphics.Matrix; /** * */ public class MatrixEvaluator implements TypeEvaluator<Matrix> { @Override public Matrix evaluate(float fraction, Matrix startValue, Matrix endValue) { float[] startEntries = new float[9]; float[] endEntries = new float[9]; float[] currentEntries = new float[9]; startValue.getValues(startEntries); endValue.getValues(endEntries); for (int i = 0; i < 9; i++) { currentEntries[i] = (1 - fraction) * startEntries[i] + fraction * endEntries[i]; } Matrix matrix = new Matrix(); matrix.setValues(currentEntries); return matrix; } }