package uk.co.cogitolearning.propertyanimations_example;
import android.animation.TypeEvaluator;
import android.graphics.Color;
public class HsvEvaluator implements TypeEvaluator<Integer>
{
@Override
public Integer evaluate(float fraction, Integer startValue, Integer endValue)
{
float[] startHsv = new float[3];
float[] endHsv = new float[3];
float[] currentHsv = new float[3];
Color.colorToHSV(startValue, startHsv);
Color.colorToHSV(endValue, endHsv);
for (int i=0; i<3; i++)
currentHsv[i] = (1-fraction)*startHsv[i] + fraction*endHsv[i];
while (currentHsv[0]>=360.0f) currentHsv[0] -= 360.0f;
while (currentHsv[0]<0.0f) currentHsv[0] += 360.0f;
return Color.HSVToColor(currentHsv);
}
}