Android实现数字跳动效果的TextView方法示例

发布时间 - 2026-01-11 00:47:18    点击率:

前言

本文介绍的是Android如何实现数字跳动效果的TextView,主要运用了DancingNumberView,DancingNumberView是一个用于跳动显示文本中数字的控件,继承自TextView,这种控件一般用于显示金额等对用户较为敏感的数字,让UI交互更加生动。

它具有以下几点特性:

  • 自动获取文本中的所有数字,并同时开始跳动,免去多个TextView拼接的麻烦
  • 支持数字按照自定义的格式显示,例如限定只显示小数点后两位

效果图如下

导入使用

Gradle

第1步,在project的build.gradle文件中适当位置添加

allprojects { 
 repositories { 
  ... 
  maven { url "https://jitpack.io" } 
 } 
} 

第2步,在app的build.gradle文件中适当位置添加依赖项

dependencies { 
  compile 'com.github.JianxunRao:DancingNumberView:V1.0.1' 
} 

使用方式

通过XML布局

<me.trojx.dancingnumber.DancingNumberView 
   android:id="@+id/dnv" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   app:dnv_duration="6000" 
   app:dnv_format="%.2f"/> 

通过Java代码

DancingNumberView dnv = (DancingNumberView) findViewById(R.id.dnv); 
 dnv.setText(text);//设置显示内容 
 dnv.setDuration(duration);//设置完成跳动的持续时长(单位ms) 
 dnv.setFormat(format);//设置数字的显示格式 
 dnv.dance();//启动效果,开始数字跳动 

关键代码

/** 
* 文本中的数字开始跳动 
 
*/ 
 
public void dance() { 
 
text = getText().toString(); 
 
numbers=new ArrayList<>(); 
 
Pattern pattern = Pattern.compile("\\d+(\\.\\d+)?"); 
 
Matcher matcher=pattern.matcher(text); 
 
while (matcher.find()){ 
 
numbers.add(Float.parseFloat(matcher.group())); 
 
} 
 
textPattern = text.replaceAll("\\d+(\\.\\d+)?",PLACEHOLDER); 
 
numberTemp=new float[numbers.size()]; 
 
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(this,"factor",0,1); 
 
objectAnimator.setDuration(duration); 
 
objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); 
 
objectAnimator.start(); 
 
} 
 
/** 
 
* 获取算数因子 
 
* @return 算数因子 
 
*/ 
 
public float getFactor() { 
 
return factor; 
 
} 
 
/** 
 
* 设置算数因子,为ObjectAnimator调用 
 
* @see ObjectAnimator 
 
* @param factor 算数因子 
 
*/ 
 
public void setFactor(float factor) { 
 
String textNow=textPattern; 
 
this.factor = factor; 
 
for (int i=0;i<numberTemp.length;i++){ 
 
numberTemp[i]=numbers.get(i)*factor; 
 
textNow=textNow.replaceFirst(PLACEHOLDER,String.format(format,numberTemp[i])); 
 
} 
 
setText(textNow); 
 
} 

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# android  # textview数字  # 数字跳动动画  # 数字跳动效果  # Android 仿支付宝中的余额宝收益进度条  # Android仿支付宝中余额宝的数字动画效果  # Android 仿余额宝数字跳动动画效果完整代码  # 的是  # 是一个  # 多个  # 两位  # 自定义  # 只显示  # 几点  # 这篇文章  # 谢谢大家  # 时长  # 如何实现  # 运用了  # 有疑问  # allprojects  # repositories  # dependencies  # java  # io  # url  # jitpack 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android中AutoCompleteTextView自动提示  jQuery 常见小例汇总  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  原生JS获取元素集合的子元素宽度实例  想要更高端的建设网站,这些原则一定要坚持!  如何用低价快速搭建高质量网站?  nginx修改上传文件大小限制的方法  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel如何创建自定义Facades?(详细步骤)  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  简单实现jsp分页  BootStrap整体框架之基础布局组件  如何用好域名打造高点击率的自主建站?  微信小程序 scroll-view组件实现列表页实例代码  详解Android中Activity的四大启动模式实验简述  制作企业网站建设方案,怎样建设一个公司网站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  Laravel如何使用查询构建器?(Query Builder高级用法)  用yum安装MySQLdb模块的步骤方法  七夕网站制作视频,七夕大促活动怎么报名?  Laravel怎么调用外部API_Laravel Http Client客户端使用  实例解析angularjs的filter过滤器  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  php json中文编码为null的解决办法  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  重庆市网站制作公司,重庆招聘网站哪个好?  Firefox Developer Edition开发者版本入口  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Java垃圾回收器的方法和原理总结  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何在景安服务器上快速搭建个人网站?  企业网站制作这些问题要关注  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  免费视频制作网站,更新又快又好的免费电影网站?  如何在宝塔面板中创建新站点?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  *服务器网站为何频现安全漏洞?  ,网页ppt怎么弄成自己的ppt?  浅谈redis在项目中的应用