Android——动画的分类

Android包含三种动画:View Animation, Drawable Animation, Property Animation(Android 3.0新引入)。

1、View Animation:也就是所说的Tweened Animation(补间动画)。View Animation分为四类:AlphaAnimation, RotateAnimation, ScaleAnimation, TranslateAnimation,分别对应透明度、旋转、大小、位移四种变化。

它是基于View的渐变动画,只改变了View的绘制效果,而实际属性值未变。比如动画移动一个按钮位置,但按钮点击的实际位置仍未改变。在代码中定义动画可以参考AnimationSet类和Animation的子类;如果使用XML,可以在res/anim/文件夹中定义XML文件。

其有两个缺点:(1)View Animation一般只能修改组件(View Object)的部分属性,比如:scaling和rotation,但是无法修改组件的背景颜色。(2)View Animation使某个组件产生动画效果移动一段距离后,比如从屏幕左侧移动到右侧,其实整个过程是绘制出来的效果,该组件真正的位置依然保留在左侧,只有点击左侧位置才能触发该组件。所以想真正移动某组件,需要在动画结束后添加代码实现。

2、Drawable Animation:也即frame-by-frame animation(逐帧动画)。加载一系列Drawable资源来创建动画,这种传统动画某种程度上就是创建不同图片序列,顺序播放,就像电影胶片。在代码中定义动画帧,使用AnimationDrawable类;XML文件能更简单的组成动画帧,在res/drawable文件夹。

3、Property Animation:沿一定时间顺序,通过改变View的属性,从而得到动画效果。使得“眼见为实”,动画之后,Object对象的属性值被实实在在的改变了。Property animation能够通过改变View对象的实际属性来实现View动画,任何时候View属性的改变,View能自动调用invalidate()来实时刷新。

原文地址:https://www.cnblogs.com/zl1991/p/6339712.html