您的位置:首页 > 其它

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

2017-05-08 22:33 357 查看
如何将一个数字从一个值逐渐变化到另外一个值?

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

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

[java] view
plain copy

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 ++;  

                        view.setText(from + "");  

                    }else{  

                        from --;  

                        view.setText(from + "");  

                    }  

                }  

            }   

        }  

        // 数字从from逐渐变化到to  

        public void setNum(int from, int to){  

            this.from = from;  

            this.to = to;  

            cha = to - from;  

            NumberAnimation.this.setDuration(20 * 2000);//最长持续40秒  

            view.startAnimation(NumberAnimation.this);  

        }  

    }  

用法:

[java] view
plain copy

NumberAnimation na = new NumberAnimation(mMenTemperature);  

    na.setNum(0, 99);  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: