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对象设置重复重复次数,否则设置不起作用,原因暂时没弄明白~~~
看了以上节点,大家是不是都想开始定义动画了。下面我们就开始结合具体的例子,介绍4种类型各自特有的节点元素。
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:保持在最下层 |
表二 | ||
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方向坐标上的中点位置 |
相关文章推荐
- Android学习历程之四 Animation初识一
- Android Animation学习笔记
- Android Animation学习笔记
- Android动画(Animation)初识
- Android学习历程(一)——Activity的启动/关闭和内部的数据传递
- Android Animation 学习笔记
- 百度Cafe原理--Android自动化测试学习历程
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- 2014-11-8Android学习-------onFinishInflate方法-------动画Animation学习篇
- Android Animation学习笔记
- Android Animation学习笔记
- app电池续航上&&下--Android自动化测试学习历程
- Android Animation学习笔记(转)
- 【Android】学习记录<1> -- 初识ffmpeg
- 【Android】学习日记一 初识Activity
- Android画图学习总结(四)——Animation(下)
- Android画图学习总结(四)——Animation(下)
- Android Animation学习笔记
- 【Android】学习笔记(11)——Animation使用方法(上)