Android中的动画实现详解
在Android的FrameWork中,为我们提供三种动画的实现方式:逐帧(Frame)动画、视图动画(View Animation)和属性动画(Property Animation)。由于,这三种动画的实现方式和针对面不一样,应用的范围也有所区别,因此我们需要根据具体的需求来选择正确动画类型。
根据SDK中的描述,这三者的功能强大程度为:逐帧动画<视图动画<属性动画。
一、逐帧动画:
该动画的方式就是将动画的过程的每一张静态图片都收集起来,然后依次显示这些图片,利用人眼的“视觉停留”的原理,给用户产生动画的效果。该方式虽然笨拙,但是也很有用,例如在浏览图片的时候,就可以使用这种方式实现逐帧浏览了。
二、视图动画:
也称为补间(Tween)动画,根据这两个定义可以看出该动画方式的一些特征:
1)该动画方式只是针对于View对象,例如ImageView、Button等;
2)实现该动画时,只需要给出两个关键帧的相关属性,Android会给你生给定成时间段内的两关键帧的动画渐变过程。
由于视图动画在Android中是一个older system,所以还不能对所有的效果进行支持,目前只支持:
1)透明度变化的动画(AlphaAnimation);
2)大小缩放的动画(ScaleAnimation);
3)位置变化的动画(TranslateAnimation);
4)旋转动画(RotateAnimation)。
三、属性动画:
为了弥补视图动画的不足,Android在3.0中引入了属性动画。和视图动画专注与视图效果不同,它更专注于对象的属性的变化,通过改变对象的属性而实现动画,不论该对象是否可见。例如:你使用视图动画将一个Button放大一倍,在界面上的效果可以实现,但是该Button的触摸响应区域还是和原来的一样,也就是说,视图动画并不是真正的将该Button放大一倍。