Android中的动画实现详解(1)

来源:互联网 发布:php 单引号 引用变量 编辑:程序博客网 时间:2024/06/07 02:09

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