一起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"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值