字符估值器
import android.animation.TypeEvaluator;
/**
* Created by zl.peng on 2016-04-20.
*/
public class CharEvaluator implements TypeEvaluator<Character> {
@Override
public Character evaluate(float fraction, Character startValue, Character endValue) {
checkParam(fraction, startValue, endValue);
int delta = (int) endValue - (int) startValue;
int current = startValue + Math.round(delta * fraction);
char c = (char) current;
return c;
}
private void checkParam(float fraction, Character startValue, Character endValue) {
if (fraction < 0 || fraction > 1)
throw new IllegalArgumentException("fraction 范围:0.0f ~ 1.0f");
if (!Character.isLowerCase(startValue) && !Character.isUpperCase(startValue))
throw new IllegalArgumentException(startValue + "不是大写字母或小写字母");
if (!Character.isLowerCase(endValue) && !Character.isUpperCase(endValue))
throw new IllegalArgumentException(endValue + "不是大写字母或小写字母");
if (!((Character.isLowerCase(startValue) && Character.isLowerCase(endValue)) || (Character.isUpperCase(startValue) && Character.isUpperCase(endValue))))
throw new IllegalArgumentException("请统一使用大写或小写");
}
}