一起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
动画。
- 在animator目录中创建动画的xml配置文件,项目中默认没有animator目录,需要我们创建此目录,它位于res目录下;
- 在代码中创建ObjectAnimator动画对象,并且获取xml文件中的动画文件;
- 使用动画对象的setTarget()方法把动画对象绑定到某个控件上;
- 使用动画对象的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吧(第四百八十六回:值动画:ValueAnimator)
一起Talk Android吧(第四百八十九回:如何使用代码实现ObjectAnimator)