0
点赞
收藏
分享

微信扫一扫

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


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

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


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


public class NumberAnimation extends Animation {  
        TextView view;  
int from, to;  
int cha;  
public NumberAnimation(TextView v){  
            view = v;  
        }  
@Override  
protected void applyTransformation(float interpolatedTime, Transformation t) {  
super.applyTransformation(interpolatedTime, t);  
if (interpolatedTime < 1.0f) {  
if(from != to){//当没有达到要显示的新值时,持续更新textview  
if(cha > 0){  
                        from ++;  
"");  
else{  
                        from --;  
"");  
                    }  
                }  
            }   
        }  
// 数字从from逐渐变化到to  
public void setNum(int from, int to){  
this.from = from;  
this.to = to;  
            cha = to - from;  
this.setDuration(20 * 2000);//最长持续40秒  
this);  
        }  
    }



用法:


NumberAnimation na = new NumberAnimation(mMenTemperature);  
0, 99);


举报

相关推荐

0 条评论