Android 属性动画ValueAnimator整理

2023-10-09 13:21

本文主要是介绍Android 属性动画ValueAnimator整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android 属性动画有 ObjectAnimatorAnimatorSetValueAnimator 等。

ObjectAnimator 、AnimatorSet 参考前篇 Andorid 属性动画ObjectAnimation整理_南国樗里疾的博客-CSDN博客

本篇介绍 ValueAnimator ,它本身不作用于任何对象,它是对值进行动画,我们监听这个动画的过程,在这个过程中修改对象的值,从而实现对对象的动画效果。

使用方法,

ValueAnimator animator = ValueAnimator.ofFloat(0,100f);// 1
animator.setInterpolator(new AccelerateInterpolator());// 2
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {// 3@Overridepublic void onAnimationUpdate(ValueAnimator animation) {}
});
animator.setDuration(3500).start();//4
  • 注释1处:创建一个 ValueAnimator ,让他从 0 到 100f 做动画。
  • 注释2处:设置动画插值器。
  • 注释3处:设置动画监听器,在这里监听动画过程。
  • 注释4处:设置动画时长,开始动画。

直接运行时没有效果的,要看效果就在 onAnimationUpdate 中实现,
本例实现的例子,模仿银行app ,余额滚动效果。

float text = 10800 ;ValueAnimator animator = ValueAnimator.ofFloat(0,100f);//1
animator.setInterpolator(new AccelerateInterpolator());//2
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {//3@Overridepublic void onAnimationUpdate(ValueAnimator animation) {float fraction = (float) animation.getAnimatedFraction();// 0~1float curValue = (float) animation.getAnimatedValue();float cur = text * fraction ;DecimalFormat df = new DecimalFormat("0.##");String str = df.format(cur);mTextView.setText(str);}
});
animator.setDuration(3500).start();//4

相关说明:

  • animation.getAnimatedFraction() :获取动画进度,浮点型,开始是 0 ,随着动画过程逐渐增加,动画结束时是 1 。
  • animation.getAnimatedValue() :获取当前进度值,注释1处我们传入的是 (0,100f) ,所以开始是 0 ,随着动画过程逐渐增加,动画结束时是 100.0 。
  • 按照动画进度计算出对应的余额,float cur = text * fraction ,格式化输出。

效果,
在这里插入图片描述

这篇关于Android 属性动画ValueAnimator整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/173130

相关文章

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.