Android自定义View之酷炫数字圆环

2019-12-10 19:25:26王冬梅

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开发频道。