Android 属性动画之 ObjectAnimator

2,243 阅读3分钟
原文链接: blog.csdn.net

1.属性动画

属性动画:是API11新加入的特性,可以对任意对象的属性进行动画,动画默认时间间隔为300ms,默认帧率为10ms/帧,API11以后才能使用帧动画,如果要兼容以前的版本可以使用开源动动画nineoldandroids

2.属性动画之透明度动画

//把mImg(一张图片)的透明度从完全可见到完全不可见,再从不可见到可见,时间为3秒 ObjectAnimator.ofFloat(mImg,”alpha”,1,0,0,1).setDuration(3000).start();

动画效果展示:

这里写图片描述

3.属性动画之旋转动画

(1)绕x轴旋转

把mImg 绕x轴旋转,从0度开始到90度,然后在返回0度,动画用时3秒 ObjectAnimator.ofFloat(mImg,”rotationX”,0,90,0).setDuration(3000).start();

动画效果展示:
这里写图片描述

(2)绕y轴旋转

把mImg 绕y轴旋转,从0度开始到90度,然后在返回0度,动画用时3秒 ObjectAnimator.ofFloat(mImg,”rotationY”,0,90,0).setDuration(3000).start();

动画效果展示:
这里写图片描述

(3)绕z轴旋转

把mImg 绕z轴旋转,从0度开始到90度,然后在返回0度,动画用时3秒 ObjectAnimator.ofFloat(mImg,”rotation”,0,90,0).setDuration(3000).start();

动画效果展示:
这里写图片描述

4.属性动画之平移动画

(1)沿x轴方向平移

把mImg 沿着x轴方向,从原始位置移动100像素,然后从100像素的位置返回原处,动画用时3秒 ObjectAnimator.ofFloat(mImg,”translationX”,0,100,100,0).setDuration(3000).start();

动画效果展示:
这里写图片描述

(2)沿y轴方向平移

把mImg 沿着y轴方向,从原始位置移动-100像素,然后从-100像素的位置返回原处,动画用时3秒 ObjectAnimator.ofFloat(mImg,”translationY”,0,-100,-100,0).setDuration(3000).start();

动画效果展示:
这里写图片描述

5.属性动画之缩放动画

(1)沿x轴方向缩放

把mImg 沿着x轴方向,从原始大小,扩大到原来的一倍,然后再返回原始大小,动画用时3秒
ObjectAnimator.ofFloat(mImg, “scaleX”, 1, 2,2,1).setDuration(3000).start();

动画效果展示:
这里写图片描述

(1)沿y轴方向缩放

把mImg 沿着y轴方向,从原始大小,扩大到原来的一倍,然后再返回原始大小,动画用时3秒
ObjectAnimator.ofFloat(mImg, “scaleY”, 1, 2,2,1).setDuration(3000).start();

动画效果展示:
这里写图片描述

6.属性动画ObjectAnimator总结

不知道大家在第一次使用属性动画ObjectAnimator的时候,对于属性参数的写法(“scaleY”、”translationY”、”alpha”等)有没有疑惑!反正我是挺纳闷的,这个字符串的属性值该怎么写,开发工具也没提示,写错了这么办?可以随便写吗?

肯定不是的。这样写是因为ImageView或者TextView有对应的set方法,当我们改变”alpha”属性值的时候,ObjectAnimator也会到TextView或ImageView中去找对应的setAlpha()方法,所有我们在写这个属性的时候不能写错,写错了没有动画效果
一些常用的属性:alpha、rotation、rotationX、rotationY、translationX、translationY、scaleX、scaleY