侵入式较低的情况下实现 TextView 数字自增长动画
方法
使用的是属性动画来实现的
public class AnimationUtils {
/**
* @param tv TextView
* @param value 最终显示的值
*/
public static void addTextViewAddAnim(TextView tv, double value) {
TextViewEvaluator evaluator = new TextViewEvaluator(value);
ValueAnimator animator = ValueAnimator.ofObject(evaluator, tv);
//动画时间
animator.setDuration(800);
animator.start();
}
//核心类
static class TextViewEvaluator implements TypeEvaluator {
private double value = 0;
TextViewEvaluator(double value) {
this.value = value;
}
@Override
public Object evaluate(float fraction, Object startValue, Object endValue) {
//样式具体改变 (自定义)
TextView tv = (TextView) endValue;
DecimalFormat df = new DecimalFormat("#0.00");
tv.setText(df.format(value * fraction));
return startValue;
}
}
}
复制代码
用法
AnimationUtils.addTextViewAddAnim(tvMileage, 10083);
复制代码
第一次尝试写文章