一起Talk Android吧(第四百八十九回:如何使用代码实现ObjectAnimator)
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第四百八十九回:如何使用代码实现ObjectAnimator)相关的知识,希望对你有一定的参考价值。
文章目录
各位看官们大家好,上一回中咱们说的例子是"ObjectAnimator
",这一回中咱们说的例子是"如何使用代码实现ObjectAnimator"。闲话休提,言归正转,让我们一起Talk android吧!
知识回顾
我们在上一章回中介绍了ObjectAnimator的概念以及如何通过xml配置来实现该动画。本章回将介绍如何使用代码来实现ObjectAnimator。详细如下:
- 创建ObjectAnimator对象,使用该类的静态方法去创建对象;
- 通过ObjectAnimator类的方法设置动画的相关参数,比如setDuaration();
- 给ObjectAnimator动画设置监听器,该步骤不是必须的,可以省略;
- 使用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
"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
以上是关于一起Talk Android吧(第四百八十九回:如何使用代码实现ObjectAnimator)的主要内容,如果未能解决你的问题,请参考以下文章
一起Talk Android吧(第三百八十九回:介绍两种实现倒计时的方法)
一起Talk Android吧(第二百八十九回:Android中的BLE开发:蓝牙连接设备三)
一起Talk Android吧(第四百八十八回:ObjectAnimator)
一起Talk Android吧(第四百一十九回:让时钟走起来)