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

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

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

构造方法中要传入一个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
      
一、介绍这是一个可以让数字滚动的TextView,他能兼容正数,负数,甚至是小数。翻滚的数字精度也完全可以由自己控制,每次可以变化精度的n倍,通过此功能可以实现倒数第一反转,倒数第二位翻转,倒数第n位翻转。支持设置开始翻滚的数以及动画的最大时间。可以在数字后面设置单位,以前前面设置符号。支持控件属性设置二、使用使用1、项目配置   1.1、在上图标注1的文件中找到相应位置加入下面代码dependencies {        compile 'com.github.onlybeyond:NubmerTextVeiw:1.0.7' }1.2在上图标注2的文件中找到相应位置加入下面代码allprojects {     repositories {         maven { url 'https://jitpack.io' }     } }1.3同步一下配置结束了2.使用 2.1、正负数的使用 默认效果从零开始,以最小精度开始动画 ,支持正负数,可以直接设置                 ntvTestOne.setNumberValue("100");  ntvTestOne.setNumberValue("-100");2.2支持小数,可以n倍精度变化,通过这个功能,可以实现倒数第一位滚动,倒数第二位滚动,倒数n位滚动。            //三倍精度增长     ntvTestThree.setRollInt(3);     ntvTestTwo.setUseMax(true);     ntvTestThree.setNumberValue("100.9");     //倒数第二位变化     ntvTestFour.setRollInt(10);     ntvTestFour.setNumberValue("100.9");     //倒数第三位变化     ntvTestFive.setRollInt(100);     ntvTestFive.setNumberValue("100.9");2.3支持动画开始的设定,以及动画最长时间的设置。这样可以拒绝从0开始的傻瓜式增长,通过该设置可以实现动画位数,例如比如168,设置成150开始,就是最后两位滚动。最长时间的设置可以保证当数字很大时,一直看动画-> _-> 并且支持动画结束以后的回调,可以查看动画开始时间,以及动画时间(时间与设定会有略微差距).但设置了开始又设定了动画时间,会比较哪一种方式比较快就会取哪一种    ntvTestSix.setNumberValue("95","100"); ntvTestSeven.setMaxAnimDuration(2000); ntvTestSeven.setUseMax(true); ntvTestSeven.setNumberTextViewListener(new NumberTextView.NumberTextViewListener() {             @Override             public void animStart(long l) {             }             @Override             public void animEnd(long l, long l1) {                 tvTestSevenTime.setText("时间:" l1);             }         });         ntvTestSeven.setNumberValue("100");2.4支持数前后添加文字,这样在数字前面添加符号,在数字后面添加单位,满足更多的应用场景。        ntvTestEight.setNumberValue("100");         ntvTestEight.setNumberValueSymbol("$");         ntvTestEight.setNumberValueUnit("元");2.5支持属性配置文件,使用起来更佳简便 <com.onlybeyond.numbertextview.NumberTextView         android:id="@ id/ntv_test_nine"         app:ntvStartValue="80"         app:ntvRollInt="3"         android:layout_width="wrap_content"         android:layout_height="wrap_content" /> //Activity         ntvTestNine.setNumberValue("100.9");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值