2、数值居中对齐问题
drawText是根据baseLine来定位的。具体可以看下下面两篇文章的分析:文章一、文章二。数字跟文字字母的居中方式可能还略有不同。
二、动画效果的实现
先上代码:
public void setValue(float value) {
ValueAnimator valueAnimator = ValueAnimator.ofFloat(currentValue, value);
valueAnimator.setDuration(300);
valueAnimator.setInterpolator(new Interpolator() {
@Override
public float getInterpolation(float v) {
return 1-(1-v)*(1-v)*(1-v);
}
});
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
currentValue = (float) valueAnimator.getAnimatedValue();
invalidate();
}
});
valueAnimator.start();
}
使用ValueAnimator来实现动画效果。还可以设置不同的插值器来实现不同的动画效果:
valueAnimator.setInterpolator(new AccelerateInterpolator());//加速 valueAnimator.setInterpolator(new DecelerateInterpolator());//减速 valueAnimator.setInterpolator(new AccelerateDecelerateInterpolator());//加速减速 valueAnimator.setInterpolator(new LinearInterpolator());//云速
常用插值器介绍可以看这篇文章。
当然也可以自己实现一个简单的插值器:
valueAnimator.setInterpolator(new Interpolator() {
@Override
public float getInterpolation(float v) {
return 1-(1-v)*(1-v)*(1-v);
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助。
注:相关教程知识阅读请移步到Android开发频道。










