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放大一倍。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1817bb8f0c634d0a943d1c7aa6cc54d1.html