一起Talk Android吧(第四百八十六回:值动画:ValueAnimator)

Posted talk_8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第四百八十六回:值动画:ValueAnimator)相关的知识,希望对你有一定的参考价值。

文章目录

各位看官们大家好,上一回中咱们说的例子是"逐帧动画的代码实现方法",这一回中咱们说的例子是"值动画:ValueAnimator"。闲话休提,言归正转,让我们一起Talk android吧!

概念介绍

我们在本章回中介绍另外一种动画:值动画。它表示让动画在指定的数值区间内运行,或者在指定对象范围内运行.我们使用ValueAnimator类表示值动画。

标签属性

明白值动画的概念后,我们来介绍它的使用方法,和视图动画类似,值动画有xml配置和代码实现两种方法,本章回中先介绍如何使用xml配置来实现值动画。

接下来先介绍xml中的标签和属性,以及它们的使用方法。 值动画使用<animator>标签,该标签包含以下常用的属性;

android:valueFrom     //表示值变化范围的起点
android:valueTo       //表示值变化范围的终点
android:duration      //表示播放动画的时间单位是ms
android:valueType     //表示值的类型,其值为"intType","floattype"
android:repeatCount   //表示动画重复播放的次数
android:repeatMode    //表示动画重复播放的模式
android:interpolator  //表示动画播放时使用的插值器

关于上面的属性,我们做一些补充说明:

  • 动画的起点值和终点值都会包含进来,类似数学中的闭区间[1,3],表示从1到3,而且包含1和3这两个边界值;
  • 值的内容与值的类型一致,比如在from属性中使用了3,那么在valueType属性中必须使用intType;
  • 其它的属性含义可以参考上面的注释,此外,这些属性的名称和视图动画中的名称完全相同,因此它们的含义和用法与视图动画中的完全一致,这里就不详细介绍了。

使用方法

  1. 在animator目录中创建动画的xml配置文件,项目中默认没有animator目录,需要我们创建此目录,它位于res目录下;
  2. 在代码中获取上一步中创建的值动画对象,并且获取xml文件中的动画文件;
  3. 给值动画对象添加值变化的监听器,并且在监听器中获取动画中的数值,可以使用这些数据来操作控件;
  4. 使用值动画对象的start()方法开始播放动画;

示例代码

明白值动画的使用方法后,接下来通过文字结合代码的方式来介绍使用值动画。首先在xml中配置值动画的属性,详细的代码如下所示:

<animator xmlns:android="http://schemas.android.com/apk/res/android"
    android:valueFrom="10"
    android:valueTo="1"
    android:duration="10000"
    android:valueType="intType"
    android:repeatCount="0"
    android:repeatMode="restart"
    android:interpolator="@android:anim/linear_interpolator">
</animator>

接下是程序中的代码,详细如下:

//获取xml中的动画
ValueAnimator animator = (ValueAnimator) AnimatorInflater.loadAnimator(this,R.animator.exanimator);
//添加监听器并且在监听器操作控件
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() 
    @Override
    public void onAnimationUpdate(ValueAnimator animator) 
        int value = (int) animator.getAnimatedValue();
        mTVValueAnimator.setText(String.valueOf(value));
    
);
//播放动画
animator.start();

上面的代码中先是创建了一个值动画,并且设置它的值变化范围为10到1,然后在该动画对象的监听器中获取这些值,同时把这些值设置到TextView控件上,这样我们就
能看到这些值了。

代码中省略了TextView的布局和代码,拿来直接使用,大家可以自行补上。编译并且运行该程序可以得到一个显示倒计时的动画,该动画从数字10到1逐渐变化,我在这里就不演示具体的效果了,希望大家自己动手实践。

看官们,关于"值动画:ValueAnator"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

以上是关于一起Talk Android吧(第四百八十六回:值动画:ValueAnimator)的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第四百八十七回:值动画的代码实现方法)

一起Talk Android吧(第四百八十八回:ObjectAnimator)

一起Talk Android吧(第四百八十九回:如何使用代码实现ObjectAnimator)

一起Talk Android吧(第四百八十回:用代码实现视图动画)

一起Talk Android吧(第四百八十回:用代码实现视图动画)

一起Talk Android吧(第四百八十二回:如何修改Switch的长宽