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

文章介绍了如何使用代码创建和设置ObjectAnimator动画,包括创建对象、设置参数、添加监听器和启动动画。示例代码展示了渐变、缩放、平移和旋转的效果,强调了ObjectAnimator能更灵活地绑定到控件的特定属性上,这是它区别于视图动画的一个重要特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各位看官们大家好,上一回中咱们说的例子是"ObjectAnimator",这一回中咱们说的例子是"如何使用代码实现ObjectAnimator"。闲话休提,言归正转,让我们一起Talk Android吧!

知识回顾

我们在上一章回中介绍了ObjectAnimator的概念以及如何通过xml配置来实现该动画。本章回将介绍如何使用代码来实现ObjectAnimator。详细如下:

  1. 创建ObjectAnimator对象,使用该类的静态方法去创建对象;
  2. 通过ObjectAnimator类的方法设置动画的相关参数,比如setDuaration();
  3. 给ObjectAnimator动画设置监听器,该步骤不是必须的,可以省略;
  4. 使用ObjectAnimator对象的start()方法播放动画;

上面是整体的使用方法,接下来我们补充一些使用的细节:

  • ObjectAnimator动画的代码实现方法和ValueAnimator动画的代码实现方法类似,不过与监听器相关操作不是必须的,而且它的监听器只能用来监听动画的变化状态。
  • ObjectAnimator类的静态方法与ValueAnimator类的静态方法不同,我们以ofFloat()这个静态为例子进行说明,下面是它的函数原型:
public static ObjectAnimator ofFloat(Object target, String propertyName, float... values) {}
  • 该方法的第一个参数是对象类型,通常传递控件对象,这相当于把控件和动画绑定到了一起,或者说控件监听了动画的监听器
  • 该方法的第二个参数是控件的属性名称,比如"alpha",“rotate”,"background"等。这些属性名称类似视图动画中xml标签内的属性。属性比较多,可以使用对象的setXXX()方法来帮忙:在对象名后面使用点操作符就会提示setXXX()方法,把这些方法中的set去掉,剩下的内容就是属性名称,注意第一个字母要小写。
  • 该方法剩下的参数是可变参数,表示动画的变化范围,比如,渐变范围,缩放范围等。
  • 该方法是重载方法,功能比较多,这里不一一列出,比如,它还可以在动画中传入path对象,这样可以控制控件的path。

示例代码

//渐变
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mImageView,"alpha",0,1);
//缩放
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mImageView,"scaleX",0,1);
//平移
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mImageView,"translationX",0,200);
//旋转
ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(mImageView,"rotation",0,180,0);
objectAnimator.setDuration(3000);
objectAnimator.start();

我们在上面的代码中创建了四个ObjectAnimator对象,分别使用了控件的渐变,缩放,平移和旋转属性,这相当于使用ObjectAnimator动画实现了视图动画中的内容。我在这里就不演示程序的运行结果了,大家可以自己动手去实践或者参考我们在视图动画中的演示效果。

经验总结

ObjectAnimator动画既可以实现视图动画的内容,也可以实现视图动画不能实现的内容。它与视图动画最大的不同点在于它可以单独把动画绑定到控件的某种属性上,而不是绑定到整个控件上,这样可以更加灵活地使用控件。它的这个特点也是属性动画的特点。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

talk_8

真诚赞赏,手有余香

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

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

打赏作者

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

抵扣说明:

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

余额充值