您的位置:首页 > 移动开发 > Android开发

Android学习历程之四 Animation初识一

2012-09-17 17:29 369 查看
http://blog.csdn.net/hellocvitamin/article/details/6891634

Animation 初识一
android.view.animation.Animation(TweenedAnimation 介绍)

Animation extendsObjectimplementsCloneable
Known Direct Subclasses

AlphaAnimation,AnimationSet,RotateAnimation,ScaleAnimation,TranslateAnimation

AlphaAnimation: 渐变(淡入淡出)动画效果

RotateAnimation:旋转动画效果

ScaleAnimation:缩放动画效果

TranslateAnimation:移动动画效果

简单实现一个图片渐变、旋转、缩放、移动动画,分5步骤完成:

1、创建AnimationSet对象

2、创建Animation对象

3、为Animation对象设置相应的参数

4、将Animation对象添加到AnimationSet对象中

5、为图片控件执行AnimationSet对象

图片移动Demo:

AnimationSetanimationSet = new AnimationSet(true);

// Animation translate = new TranslateAnimation(

// 0f,

// 100f,

// 0,

// 100f);

Animation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0f,

Animation.RELATIVE_TO_PARENT, 1f,

Animation.RELATIVE_TO_SELF, 0f,

Animation.RELATIVE_TO_PARENT, 1f);

//设置动画执行前等待的时间

animationSet.setStartOffset(1000);

//如果setFillAfter(true),则动画执行之后,控件将停留在执行借宿状态

// animationSet.setFillAfter(false);

//如果setFillBefore(true),则动画执行之后,控件将回到动画开始执行的状态

// animationSet.setFillBefore(false);

//设置重复执行的次数

animationSet.setRepeatCount(3);

//每次动画执行时间

animationSet.setDuration(3000);

animationSet.addAnimation(translate);

//为图片控件添加动画

image.startAnimation(animationSet);

注意:这里setRepeatCount(int repeatCount),要用Animation对象设置,不能用AnimationSet对象设置重复重复次数,否则设置不起作用,原因暂时没弄明白~~~

表一
属性[类型]功能
Duration[long]属性为动画持续时间时间以毫秒为单位
fillAfter [boolean]当设置为true ,该动画转化在动画结束后被应用
fillBefore[boolean]当设置为true ,该动画转化在动画开始前被应用
interpolator指定一个动画的插入器有一些常见的插入器 accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器其他的属于特定的动画效果
repeatCount[int]动画的重复次数
RepeatMode[int]定义重复的行为1:重新开始 2:plays backward
startOffset[long]动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
zAdjustment[int]定义动画的Z Order的改变0:保持Z Order不变 1:保持在最上层 -1:保持在最下层
看了以上节点,大家是不是都想开始定义动画了。下面我们就开始结合具体的例子,介绍4种类型各自特有的节点元素。
表二
XML节点功能说明
alpha渐变透明度动画效果
<alpha android:fromAlpha=”0.1″ android:toAlpha=”1.0″ android:duration=”3000″ />
fromAlpha属性为动画起始时透明度0.0表示完全透明 1.0表示完全不透明以上值取0.0-1.0之间的float数据类型的数字
toAlpha属性为动画结束时透明度
表三
scale渐变尺寸伸缩动画效果
<scale android:interpolator= “@android:anim/accelerate_decelerate_interpolator” android:fromXScale=”0.0″ android:toXScale=”1.4″ android:fromYScale=”0.0″ android:toYScale=”1.4″ android:pivotX=”50%” android:pivotY=”50%” android:fillAfter=”false” android:startOffset=“700” android:duration=”700″ android:repeatCount=”10″ />
fromXScale[float] fromYScale[float]为动画起始时,X、Y坐标上的伸缩尺寸0.0表示收缩到没有 1.0表示正常无伸缩值小于1.0表示收缩值大于1.0表示放大
toXScale [float] toYScale[float]为动画结束时,X、Y坐标上的伸缩尺寸
pivotX[float] pivotY[float]为动画相对于物件的X、Y坐标的开始位置属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
表四
translate画面转换位置移动动画效果
<translate android:fromXDelta=”30″ android:toXDelta=”-80″ android:fromYDelta=”30″ android:toYDelta=”300″ android:duration=”2000″ />
fromXDelta toXDelta为动画、结束起始时 X坐标上的位置
fromYDelta toYDelta为动画、结束起始时 Y坐标上的位置
表五
rotate画面转移旋转动画效果
<rotate android:interpolator=”@android:anim/accelerate_decelerate_interpolator” android:fromDegrees=”0″ android:toDegrees=”+350″ android:pivotX=”50%” android:pivotY=”50%” android:duration=”3000″ />
fromDegrees为动画起始时物件的角度说明当角度为负数——表示逆时针旋转当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转)
toDegrees属性为动画结束时物件旋转的角度 可以大于360度
pivotX pivotY为动画相对于物件的X、Y坐标的开始位说明:以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: