在我们的项目中,如果牵扯到金额,而且非常大的时候,进入页面希望看到数字滚动增加,有一个视觉效果
其实实现起来也非常的简单:
//在onwindonfouceChanged 方法中执行动画,不能放在oncreate中, // 因为oncreate中控件没有完成加载完毕并,这时候去执行动画可能不生效 // 或者放在.post(new Runnable() {});中执行 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); //值动画与ObjectAnimator 的不同之一就是值动画没有作用的属性 ValueAnimator mOffsetAnimator = new ValueAnimator(); mOffsetAnimator.setInterpolator(new DecelerateInterpolator()); //添加监听,得到值进行设置 mOffsetAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { if (animation.getAnimatedValue() instanceof Integer) { Integer value = (Integer) animation.getAnimatedValue(); mNum.setText(formatS(value)); } } }); mOffsetAnimator.setDuration(4000); mOffsetAnimator.setIntValues(1, 10000000); mOffsetAnimator.start(); } //数字百分位转换 public String formatS(Integer s){ DecimalFormat df = new DecimalFormat("##,###"); String format = df.format(s); return format; }