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

本文介绍了如何在Android中使用TextView实现数字从一个值平滑渐变到另一个值的效果。通过传入TextView实例,利用动画机制,在20秒内逐步更新数字,根据数据变化跨度调整持续时间和变化速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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);
		}
	}

用法:

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值