【工匠若水http://blog.csdn.net/yanbober】
Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类:
View Animation:视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。
Drawable Animation:这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显示Drawable的resources,就像放幻灯片一样。
Property Animation:属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的动画。
到此Android动画基本已经描述OK了,也就这么三大类,尤其是属性动画更加一筹。但是特别说一句,上面基本都没有提及到各种动画的Listener接口,原因是这个玩意太简单,所以不提了,相信你会监听View的onClickListener就一定会触类旁通动画的Listener方法的。有了这些基础相信无论是自定义控件时还是自定义动画时都会起到直接的指导参考作用。其实对于Android的动画实现远远不止现在提到的这些,但是这些又是基础,所以后面还会写文章说说Android提供的其他动画参考工具类的。
现在我们继续沿用官方的对比,翻译一下这些动画的区别,具体如下(点我参看原文How Property Animation Differs from View Animation):
View动画:
View动画只能够为View添加动画,如果想为非View对象添加动画须自己实现;且View动画支持的种类很少;尤其是他改变的是View的绘制效果,View的属性没有改变,其位置与大小都不变;View动画代码量少,使用简单方便。
Property动画:
弥补了View动画的缺陷,你可以为一个对象的任意属性添加动画,对象自己的属性会被真的改变;当对象的属性变化的时候,属性动画会自动刷新屏幕;属性动画改变的是对象的真实属性,而且属性动画不止用于View,还可以用于任何对象。