一起Talk Android吧(第四百八十七回:值动画的代码实现方法)
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第四百八十七回:值动画的代码实现方法)相关的知识,希望对你有一定的参考价值。
文章目录
各位看官们大家好,上一回中咱们说的例子是"值动画:ValueAnimator",这一回中咱们说的例子是"值动画的代码实现方法"。闲话休提,言归正转,让我们一起Talk android吧!
知识回顾
我们在上章回中介绍了值动画的概念以及xml的配置方法,本章回中将介绍如何使用代码来实现值动画.
使用方法:
- 创建ValueAnimator类对象,也就是动画对象;
- 通过ValueAnimator类方法设定动画运行参数 ;比如setDuaration();
- 给动画对象添加监听器,在监听器中对控件进行相关操作;
- 通过动画对象的start()方法启动动画;
我们需要对该方法做一些细节上的补充说明:
- 创建对象通过
ValueAnimator
类的静态方法实现。常用的实现方法:ofInt(),ofFloat()和ofObject();
它们用来指定动画的值区间,它们的参数数量是可变的,表示动画的变化范围也是多个区间。前两个方法只是传入值的类型不一样,使用方法完全相同;最后一个方法,需要传入类的对象,常用的是字母,颜色颜色等类型。 ValueAnimator
类还有其方法,这些方法主要用来设置动画运行参数,比如重复模式,重复次数,插值器。- 动画监听器有两种:动画变化值监听器和动画变化状态监听器。常用的是变化值监听器,它可监听到动画变化时的数据。变化状态监听器可以监听到动画开始、结束,重复这些状态。
- 在动画的监听器中可以获取到动画变化时值,值的类型与创建对象使用的类型相同。我们需要依据不同的值对控件进行不同的操作,进而实现动画效果;
ValueAnimator
的核心思想:它只负责把在指定的区间内做计算,并且把计算的值通过监听器返回来,我们需要在监听器中结合计算出的值来操作控件,进而实现动画效果。
示例代码
ValueAnimator valueAnimator = ValueAnimator.ofInt(10,1);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
@Override
public void onAnimationUpdate(ValueAnimator animator)
int value = (int) animator.getAnimatedValue();
mTVValueAnimator.setText(String.valueOf(value));
);
valueAnimator.setDuration(10000);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.start();
上面的代码中先是创建了一个值动画,并且设置它的值变化范围为10到1,然后在该动画对象的监听器中获取这些值,同时把这些值设置到TextView控件上,这样我们就能看到这些值了。
我们给动画设置的运行时间是10s,并且添加了线性插值器,这样可以保证每秒显示一个变化值。代码中省略了TextView的布局和代码,拿来直接使用,大家可以自行补上。编译并且运行该程序可以得到一个显示倒计时的动画,该动画从数字10到1逐渐变化,我在这里就不演示具体的效果了,希望大家自己动手实践。
看官们,关于"值动画的代码实现方法"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
以上是关于一起Talk Android吧(第四百八十七回:值动画的代码实现方法)的主要内容,如果未能解决你的问题,请参考以下文章
一起Talk Android吧(第三百八十七回:LiveData)
一起Talk Android吧(第四百八十六回:值动画:ValueAnimator)
一起Talk Android吧(第四百八十八回:ObjectAnimator)
一起Talk Android吧(第四百八十九回:如何使用代码实现ObjectAnimator)