Android动画:Animation介绍

简介

         Animations是一系列的动画效果,这些效果可以运用在绝大数控件上面。

 

         Animations总的说来可以分为两类:

         Tweened Animations:包括

         Alpha:淡入淡出效果

         Scale:缩放效果

         Rotate:旋转效果

         Translate:移动效果

 

         Frame-by-Frame Animations:这个可以创建一个Drawable序列,可以一个一个的显示。

动画的公共函数

         setDuration(float time)动画执行时间;

         setFillAfter(boolean b)是否保持动画结束时状态;

         setFillBefore(boolean b)是否返回动画开始状态,当动画结束后;

         setStartOffset(long time)经过多少时间动画开始执行;

         setRepeatCount(int i)动画重复次数(默认为0)。

TranslateAnimation类:位置变化动画类

         TranslateAnimation类是Android系统中的位置变化动画类,用于控制View对象的位置变化,该类继承于Animation类。TranslateAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是TranslateAnimation构造方法。

【基本语法】public TranslateAnimation (float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

         参数说明

         fromXDelta:位置变化的起始点X坐标。

         toXDelta:位置变化的结束点X坐标。

         fromYDelta:位置变化的起始点Y坐标。

         toYDelta:位置变化的结束点Y坐标。

 

 这里给出一个从外部滑入屏幕的例子:

 

移动进入:

TranslateAnimation topEnter = new TranslateAnimation(0f, 0f, -H, 0);

TranslateAnimation bottomEnter = new TranslateAnimation(0f, 0f, H, 0);

TranslateAnimation leftEnter = new TranslateAnimation(-H, 0f, 0f, 0);

TranslateAnimation rightEnter = new TranslateAnimation(H, 0f, 0f, 0);

移动退出:

TranslateAnimation topExit = new TranslateAnimation(0f, 0f, 0f, -H);

TranslateAnimation bottomExit = new TranslateAnimation(0f, 0f, 0f, H);

TranslateAnimation leftExit = new TranslateAnimation(0f, -H, 0f, 0f);

TranslateAnimation rightExit = new TranslateAnimation(0f, H, 0f, 0f);

RotateAnimation类

         RotateAnimation类是Android系统中的旋转变化动画类,用于控制View对象的旋转动作,该类继承于Animation类。RotateAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是RotateAnimation构造方法。

【基本语法】public RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

         参数说明

         fromDegrees:旋转的开始角度。

         toDegrees:旋转的结束角度。

         pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、        RELATIVE_TO_PARENT。

         pivotXValue:X坐标的伸缩值。

         pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

         pivotYValue:Y坐标的伸缩值。

 

         注意:旋转表示一个控件绕着一个点做旋转(平面旋转)。这个旋转是围绕一个点,而这个点是由百分比决定的,比如相对于自身时x为0.5,y为0.5,那么这个点就是该控件的中心;如果x为1,y为1,那么这个点就是控件的右下角;相对父控件时x为0.5,y为0.5,那么这个点就是该父控件的中心。

         围绕控件中心旋转的方法:(旋转的控件布局要是一个正方形,即比较严格对称的)

RotateAnimation  rotateAnimation = new RotateAnimation(0, 180,

Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);

 

 

ScaleAnimation类:尺寸变化动画类

         ScaleAnimation类是Android系统中的尺寸变化动画类,用于控制View对象的尺寸变化,该类继承于Animation类。ScaleAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是ScaleAnimation构造方法。

【基本语法】public ScaleAnimation (float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

         参数说明:

         fromX:起始X坐标上的伸缩尺寸。

         toX:结束X坐标上的伸缩尺寸。

         fromY:起始Y坐标上的伸缩尺寸。

         toY:结束Y坐标上的伸缩尺寸。

         pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、        RELATIVE_TO_PARENT。

         pivotXValue:X坐标的伸缩值。

         pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

         pivotYValue:Y坐标的伸缩值。

AlphaAnimation类:透明度变化动画类

         AlphaAnimation类是Android系统中的透明度变化动画类,用于控制View对象的透明度变化,该类继承于Animation类。AlphaAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是AlphaAnimation构造方法。

【基本语法】public AlphaAnimation (float fromAlpha, float toAlpha)

         参数说明

         fromAlpha:开始时刻的透明度,取值范围0~1。

         toAlpha:结束时刻的透明度,取值范围0~1。

 

AnimationSet类:动画集合类

         AnimationSet类是Android系统中的动画集合类,用于控制View对象进行多个动作的组合,该类继承于Animation类。AnimationSet类中的很多方法都与Animation类一致,该类中最常用的方法便是addAnimation方法,该方法用于为动画集合对象添加动画对象。

AnimationDrawable类:帧动画类

         AnimationDrawable类是Android系统中的帧动画类。帧动画方式类似于放电影的原理,是通过顺序播放多张图片来实现动画效果的,图片之间有一定的动作连贯性,这样人眼看来就像对象真正在运动一样。

AnimationUtils类:动画工具类

         AnimationUtils类是Android系统中的动画工具类,提供了控制View对象的一些工具。该类中最常用的方法便是loadAnimation方法,该方法用于加载XML格式的动画配置文件。在Android系统中,除了在代码中设置动画效果外,还可以在XML配置文件中设置动画的组合动作,这种方式适用性更好。

总结:

动画技术能够给应用程序带来丰富的特效,增强用户体验。Android系统提供了两种动画实现方式,补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画可以对View对象进行简单的移动、旋转、缩放和渐变等效果,帧动画则提供了传统的逐帧播放图片的动画方式。本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。

部分内容摘自:http://book.51cto.com/art/201204/328294.htm

posted on 2012-06-08 09:11  沙翁  阅读(2275)  评论(0编辑  收藏  举报

导航