用一个textview显示数字,让数字从一个值渐变到另外一个值

如何将一个数字从一个值逐渐变化到另外一个值?

构造方法中要传入一个textview,可以将要操作的textview传进来,因为启动动画需要一个实例的view,这里并不会对该textview进行动画变化(移动,旋转等),只是利用他启动动画和改变textview中的数字。

interpolatedTime的值从0变化到1,持续时间由setDuration()方法设定,这里设置了20*2000毫秒,如果你的数据变化跨度很大,没能在20*2000毫秒变化完成,可以将时间设置更长一些。当然也可以加快from的变化速度,让它一次多加/减一些

[java]  view plain  copy
  1. public class NumberAnimation extends Animation {  
  2.         TextView view;  
  3.         int from, to;  
  4.         int cha;  
  5.         public NumberAnimation(TextView v){  
  6.             view = v;  
  7.         }  
  8.         @Override  
  9.         protected void applyTransformation(float interpolatedTime, Transformation t) {  
  10.             super.applyTransformation(interpolatedTime, t);  
  11.             if (interpolatedTime < 1.0f) {  
  12.                 if(from != to){//当没有达到要显示的新值时,持续更新textview  
  13.                     if(cha > 0){  
  14.                         from ++;  
  15.                         view.setText(from + "");  
  16.                     }else{  
  17.                         from --;  
  18.                         view.setText(from + "");  
  19.                     }  
  20.                 }  
  21.             }   
  22.         }  
  23.         // 数字从from逐渐变化到to  
  24.         public void setNum(int from, int to){  
  25.             this.from = from;  
  26.             this.to = to;  
  27.             cha = to - from;  
  28.             NumberAnimation.this.setDuration(20 * 2000);//最长持续40秒  
  29.             view.startAnimation(NumberAnimation.this);  
  30.         }  
  31.     }  

用法:

[java]  view plain  copy
  1. NumberAnimation na = new NumberAnimation(mMenTemperature);  
  2.     na.setNum(099);  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值