Android 属性动画有 ObjectAnimator 、AnimatorSet 、ValueAnimator 等。
ObjectAnimator 、AnimatorSet 参考前篇 Andorid 属性动画ObjectAnimation整理_南国樗里疾的博客-CSDN博客
本篇介绍 ValueAnimator ,它本身不作用于任何对象,它是对值进行动画,我们监听这个动画的过程,在这个过程中修改对象的值,从而实现对对象的动画效果。
使用方法,
ValueAnimator animator = ValueAnimator.ofFloat(0,100f);// 1
animator.setInterpolator(new AccelerateInterpolator());// 2
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {// 3
@Override
public void onAnimationUpdate(ValueAnimator animation) {
}
});
animator.setDuration(3500).start();//4
直接运行时没有效果的,要看效果就在 onAnimationUpdate 中实现,
本例实现的例子,模仿银行app ,余额滚动效果。
float text = 10800 ;
ValueAnimator animator = ValueAnimator.ofFloat(0,100f);//1
animator.setInterpolator(new AccelerateInterpolator());//2
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {//3
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float fraction = (float) animation.getAnimatedFraction();// 0~1
float curValue = (float) animation.getAnimatedValue();
float cur = text * fraction ;
DecimalFormat df = new DecimalFormat("0.##");
String str = df.format(cur);
mTextView.setText(str);
}
});
animator.setDuration(3500).start();//4
相关说明:
效果,
