android数字滚动动画,Android超简单实现金钱滚动效果

目录

3513cdd8f320

目录

效果展示

3513cdd8f320

实现原理

3513cdd8f320

利用ValueAnimator将数值从0一直增长到你所需要展示的数值,然后使用TextView将增长过程中的数值不断展示即可实现金钱的滚动效果。

ValueAnimator基础讲解

ValueAnimator是Android中用来实现属性动画的类,它是Android3.0后才引入的,它可以实现将数值从某一个值到某一个值的变化,比如ValueAnimator.ofInt(10,100)就可以实现数值从10到100的变化,而此方法的参数类型是可变长度的参数,即可以传入多个数值,比如ValueAnimator.ofInt(10,100,20)则可实现数值从10到100到20的变化,那么我们如何获取期间变化的值呢?这里我们通过valueAnimator.addUpdateListener()添加一个监听事件来获取,而动画的时长可以用setDuration()方法来设置。

ValueAnimator mValueAnimator = ValueAnimator.ofInt(0,100);

mValueAnimator.setDuration(1000);//动画时间为1秒

mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

int value = (int) animation.getAnimatedValue();//获取期间变化的值

}

});

实现效果(代码展示)

public class RunnTextView extends TextView {

private ValueAnimator mValueAnimator;

private DecimalFormat mDf;

public RunnTextView(Context context) {

this(context,null);

}

public RunnTextView(Context context, @Nullable AttributeSet attrs) {

this(context, attrs,0);

}

public RunnTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

init();

}

private void init() {

//格式化小数(保留小数点后两位)

mDf = new DecimalFormat("0.00");

initAnim();

}

/**

* 初始化动画

*/

private void initAnim() {

mValueAnimator = ValueAnimator.ofFloat(0,0);//由于金钱是小数所以这里使用ofFloat方法

mValueAnimator.setDuration(1000);//动画时间为1秒

mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

float value = (float) animation.getAnimatedValue();

if(value>0){//当数值大于0的时候才赋值

setText(mDf.format(value));

}

}

});

}

/**

* 设置要显示的金钱

* @param money

*/

public void setMoney(float money){

mValueAnimator.setFloatValues(0,money);//重新设置数值的变化区间

mValueAnimator.start();//开启动画

}

/**

* 取消动画和动画监听(优化内存)

*/

public void cancle(){

mValueAnimator.removeAllUpdateListeners();//清除监听事件

mValueAnimator.cancel();//取消动画

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

因为信仰,油画专业的他自学开发进击阿里技术P9

大约在1年以前,阿里云视频云团队来了一位热心和气、爱好广泛的老干部新同学,他就是资深技术专家郝冲,花名和招,寓意“和气招财”。 有人说程序员只喜欢安静地写代码,和招偏偏一个户外运动爱好者。他擅长滑雪&#xff…

聚焦技术和实践,腾讯全面揭秘基础设施和大数据演进之路

“开发者是推动技术发展的主力军,数字社会向前的每一步,都离不开广大开发者。作为数字化转型助手,腾讯云将秉持“开源、共享、创新”的三大理念持续助力开发者的个人成长和价值创造。目前腾讯云已经服务了数百万开发者,给到开发者…

Apache JMeter 测试 HTTP接口

一、设置基础组件 1. Apache JMeter 测试 HTTP接口流程 原则:简单的http请求而已,例如:PostMan测试一样的 1.添加一个线程组 2给线程组添加一个取样器,用来发送HTTP请求 3.给线程组添加一个监听器(观察结果树),用来查…

MaxCompute2.0新功能介绍

在过去的两年内,MaxCompute进行了翻天覆地的重构,从1.0版本全面升级到了2.0版本。而大家或许对于MaxCompute 2.0的一些新特性并不了解,在本文中,MaxCompute技术专家秋鹏就为大家详细介绍MaxCompute 2.0的新特性。 本文主要围绕以下…

android顶部导航高度,Android特效——————底部/顶部导航条(Fragment+ViewPaper+XTabLayout)...

初次使用xtablayout和viewpaper2.所以就弄了最基础的导航条一、效果二、代码配置环境【在bulid.gradle中添加以下代码】implementation ‘androidx.viewpager2:viewpager2:1.0.0-alpha02‘implementation‘com.androidkun:XTabLayout:1.1.4‘按钮点击切换图片【几个点击按钮图片…

Apache JMeter 压试 HTTP接口

压测模拟100个用户连续发10次起请求 总请求数量线程数*循环次数1. 设置线程数 2. 查看服务端输出 3. 查看结果树 4. 查看聚合报告

Apache孵化器主席Justin Mclean:如何成为Apache顶级开源项目

近日,Apache孵化器主席、Apache基金会成员、Dubbo & RocketMQ等开源项目的导师Justin Mclean来到阿里巴巴西溪园区,与众多开发者分享了如何打造一个Apache顶级项目,以及项目孵化过程会遇到的一些盲点和挑战。 经Justin Mclean先生本人允…

正式开源TKE和TBase,腾讯正成为大数据领域开源最全面厂商

在11月6日召开的Techo开发者大会上,腾讯云副总裁、腾讯数据平台部总经理蒋杰博士正式对外披露腾讯大数据平台10年技术演进历程。 经过10年的积累,腾讯大数据平台的算力资源池目前已有超过20万台的规模,每天实时数据计算量超过30万亿条&#…

服务化改造实践(三) | Dubbo + Zipkin

随着业务的发展,应用的规模不断的扩大,传统的应用架构无法满足诉求,服务化架构改造势在必行,以 Dubbo 为代表的分布式服务框架成为了服务化改造架构中的基石。随着微服务理念逐渐被大众接受,应用进一步向更细粒度拆分&…

基于TableStore的亿级订单管理解决方案

一、方案背景 订单系统存在于各行各业,如电商订单、银行流水、运营商话费账单等,是一个非常广泛、通用的系统。对于这类系统,在过去十几年发展中已经形成了经典的做法。但是随着互联网的发展,以及各企业对数据的重视,…

mybatis-plus的 mapper.xml 路径配置的坑

mybatis-plus今天遇到一个问题,就是mybatis 没有读取到mapper.xml 文件。 #实体扫描,多个package用逗号或者分号分隔 mybatis-plus:typeAliasesPackage: com.gblfy.springboot.mybatisplus.entitymapper-locations:- classpath*:com/gblfy/springboot/*…

加速布局无服务器生态,腾讯云与Serverless.com达成全球战略合作!

在云计算技术领域,“Serverless(无服务器)”作为一种新型的软件设计架构正在快速崛起。作为继虚拟机、容器后的第三代通用计算平台,Serverless技术也一直是腾讯云原生的重点发力领域。 近日,在由腾讯云主办的首届Tech…

阿里云周源:一篇文章读懂四代视频加密技术演进

在刚刚圆满落幕的LiveVideoStackCon峰会上,阿里云高级技术专家周源进行了《视频加密和DRM的实施实践》主题分享。周源,有十多年音视频研发经验,之前在淘宝视频负责开放平台,目前在阿里云视频云部门负责媒体处理,在大规…

云原生数据库如何打造业务弹性

云计算带来了业务弹性上的极大优势,阿里云数据库高级产品专家时慢从应用架构的变迁,客户实战案例,业务分析等方面详细介绍POLARDB,及如何利用POLARDB设计互联网创新型应用的数据库架构。 应用架构的变迁——为什么我们需要超级MyS…

SpringMVC 集成 mybatisPlus

文章目录一、基础配置1. pom2. web.xml二、配置文件2.1.spring-context.xml2.2. spring-datasource.xml2.3. spring-mvc.xml2.4. jdbc.properties2.5. logback.xml三、基础类3.1. 实体类3.2. 接口类3.3. 接口映射xml3.4. service接口3.5. 接口实现类3.6. 控制层四、数据库方面4…

四大开源项目联合发布 腾讯已成Github全球贡献前十公司!

近日在Techo开发者大会上,腾讯正式对四大重点开源项目进行了联合发布,包括分布式消息中间件TubeMQ、基于最主流的 OpenJDK8开发的Tencent Kona JDK、分布式HTAP数据库 TBase,以及企业级容器平台TKEStack。 截至目前,腾讯已经在Gi…

实践 | Sentinel 扩展性设计

Sentinel 提供多样的 SPI 接口用于提供扩展的能力。用户可以在用同一个 sentinel-core 的基础上自行扩展接口实现,从而可以方便地给 Sentinel 添加自定义的逻辑。 初始化逻辑扩展机制 为了统一初始化的流程,我们抽象出了 InitFunc 接口代表 Sentinel 的…

android 各版本市占率,Android各版本市占率:果冻豆遥遥领先

近日,谷歌公布了最新Android系统各版本的市场占有率。虽说已发布两年之久且推出三个版本的果冻豆系统出现了小幅下滑,但60.8%的市占率依然遥遥领先其它各版本。Android各版本市占率:果冻豆遥遥领先(图片来源于cnbeta)从 谷歌统计数据显示&…

腾讯首度披露基础架构演进史:“海量之道”进化“生而为云”

近日腾讯Techo开发者大会在北京召开。会上腾讯云副总裁、云架构平台部总经理谢明首次对外披露了腾讯基础设施演进与创新历程。他介绍在微信、QQ等国民级业务不断发展的背后,包括服务器、网络、IDC、计算、存储、数据库等在内的基础设施和技术架构一直在不断进化&…

阿里云专家穆轩的《杭州九年程序员之“修炼”手册》

对于一个从未到过南方的内蒙汉子来说,北京的大学一直是中学时憧憬的殿堂,而离家上千公里浙江大学,则是从来没有考虑过的地方。机缘巧合之下,被一位年近七旬的浙大老师说服,我自此开始了南下“修炼”之旅。没想到转眼间…