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

Posted talk_8

tags:

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

文章目录


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

概念介绍

我们在本章回中介绍另外一种动画:ObjectAnimator,通常使用ObjectAnimator类来表示。它可以对控件的某种属性进行控制,因此它也是一种属性动画。

标签属性

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

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

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

关于上面的属性,我们重点介绍propertyName属性,它表示控件的属性名称,比如background,scal等。不过这些名称需要有与其对应的setXXX()方法才可以,这里xxx表示属性名称。其它的属性我们介绍值动画时介绍过,这些属性的名称和含义都相同,因此这里就不再详细介绍了。

使用方法

介绍完标签和属性后,我们来介绍如何通过xml文件来实现ObjectAnimator动画。

  1. 在animator目录中创建动画的xml配置文件,项目中默认没有animator目录,需要我们创建此目录,它位于res目录下;
  2. 在代码中创建ObjectAnimator动画对象,并且获取xml文件中的动画文件;
  3. 使用动画对象的setTarget()方法把动画对象绑定到某个控件上;
  4. 使用动画对象的start()方法开始播放动画;

示例代码

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

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:propertyName="rotation"
    android:duration="5000"
    android:valueFrom="0"
    android:valueTo="180"
    android:valueType="floatType"
    android:interpolator="@android:anim/linear_interpolator" >
</objectAnimator>

接下来在代码获取动画并且播放它。

//获取xml中的动画
ObjectAnimator objectAnimatorXml = (ObjectAnimator) AnimatorInflater.loadAnimator(this,R.animator.obj_anima);
//把动画绑定到图片控件上
objectAnimatorXml.setTarget(mImageView)
//播放动画
objectAnimatorXml.start();

上面的代码中先是创建了一个ObjectAnimator动画对象,并且从xml文件获取动画的配置,然后把该动画绑定到ImageView控件上.最后是播放动画。代码中省略了ImageView的布局和代码,拿来直接使用,大家可以自行补上。编译并且运行该程序可以得到旋转图片的动画,我在这里就不演示具体的效果了,希望大家自己动手实践。

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

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

一起Talk Android吧(第三百八十八回:lifecycle)

一起Talk Android吧(第四百一十八回:制作时钟)

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

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

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

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