Android Property动画——ObjectAnimator使用

Only the road is right, do not be afraid of it is short or distant, because you will eventually arrive.
只要路是对的,就不要害怕它是短暂还是遥远,因为你终究会到达。

1. 概述

1.1 前言

ValueAnimator有个缺点,只能对数值对动画计算。想要对哪个控件操作,需要监听动画过程,在监听中对控件操作。这样使用起来相比补间动画比较麻烦。

ObjectAnimator是派生自ValueAnimator的,所以ValueAnimator中所能使用的方法,在ObjectAnimator中都可以正常使用。

ObjectAnimator重写了几个方法,例如ofInt()、ofFloat等。

示例:

ObjectAnimator animator = ObjectAnimator.ofFloat(tv,"alpha",1,0,1);
animator.setDuration(2000);
animator.start();

效果如下:


ObjectAnimator的ofFloat函数声明如下:

public static ObjectAnimator ofFloat(Object target, String propertyName, float... values) 

参数:

第一个参数用于指定这个动画要操作的是哪个控件

第二个参数用于指定这个动画要操作这个控件的哪个属性

第三个参数是可变长参数,值这个参数从哪变到哪。

对于ObjectAnimator,只需要改变ofFloat()等的第二个参数就可以实现对应的动画。

1.2 setter函数

ObjectAnimator做动画,并不是根据控件的xml中属性来改变的,而是通过指定属性所对应的set方法来改变的。在View中有关动画,总共有以下几组set方法:

//1、透明度:alpha
public void setAlpha(float alpha)
 
//2、旋转度数:rotation、rotationX、rotationY
public void setRotation(float rotation)		//	表示围绕Z轴旋转,rotation表示旋转度数
public void setRotationX(float rotationX)	//	表示围绕X轴旋转,rotationX表示旋转度数
public void setRotationY(float rotationY)	//	表示围绕Y轴旋转,rotationY表示旋转度数
 
//3、平移:translationX、translationY
public void setTranslationX(float translationX) 	//	表示在X轴上的平移距离,以当前控件为原点,向右为正方向,参数translationX表示移动的距离
public void setTranslationY(float translationY)		//	表示在Y轴上的平移距离,以当前控件为原点,向右为正方向,参数translationY表示移动的距离
 
//缩放:scaleX、scaleY
public void setScaleX(float scaleX)		//	在X轴上缩放,scaleX表示缩放倍数
public void setScaleY(float scaleY)		//	在Y轴上缩放,scaleY表示缩放倍数
  • 要使用ObjectAnimator来构造对画,要操作的控件中,必须存在对应的属性的set方法
  • setter 方法的命名必须以骆驼拼写法命名,即set后每个单词首字母大写,其余字母小写,即类似于setPropertyName所对应的属性为propertyName

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值