android动画
来源:互联网 发布:唐安琪烧伤 知乎 编辑:程序博客网 时间:2024/06/04 20:05
Android 3.0之前支持两种动画模式,tween animation ,frame animation。在android 3.0 又引入了一种新的动画系统 property animation。
这三种动画模式在sdk中成为 view animation ,frame animation 和property animation。
可以通过NineOldAndroids 项目在android3.0之前的系统中使用Property Animation。
1. View Animation (Tween Animation):
View 形状的变化,主要有透明度渐变 AlaphaAnimation ,画面旋转 RotateAnimation, 尺寸变化 ScaleAnimation,位置移动 TranslateAnimation。可以通过/res/anim文件中<scale><translate><alpha><rotate>来声明这些动画,建议写在xml中,增加代码的重用性。
<set xmlns:android="http://schemas.android.com/apk/res/android">
</pre><pre name="code" class="html"> <translate android:fromXDelta="0%p" android:toXDelta="-100%p" android:duration="300"> </translate></set>
<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="1.0" android:toXScale="1.4" android:fromYScale="1.0" android:toYScale="0.6" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="700"/>
view animation 参数详细说明:
表二
XML节点功能说明alpha渐变透明度动画效果<alphaandroid:fromAlpha=”0.1″
android:toAlpha=”1.0″
android:duration=”3000″ />fromAlpha
属性为动画起始时透明度
0.0表示完全透明1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字toAlpha属性为动画结束时透明度
表三
scale渐变尺寸伸缩动画效果<scaleandroid: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画面转换位置移动动画效果<translateandroid:fromXDelta=”30″
android:toXDelta=”-80″
android:fromYDelta=”30″
android:toYDelta=”300″
android:duration=”2000″ />fromXDelta
toXDelta为动画、结束起始时 X坐标上的位置 fromYDelta
toYDelta为动画、结束起始时 Y坐标上的位置
表五
rotate画面转移旋转动画效果<rotateandroid: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:interpolator 用来修饰动画的变化效果。
AccelerateDecelerateInterpolator 在动画开始和结束的的时候比较慢,在中间时刻加速
AccelerateInterpolator 在动画开始的的时候比较慢,后面加速
DecelerateInterpolator 在动画开始的时候比较快,后面变慢
AnticipateInterpolator 开始的时候向后然后向前甩
AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回到最后的值
BounceInterpolator 动画结束的时候弹起
CycleInterpolator 动画循环播放特定的次数,速率该变沿着正弦曲线
LinearInterpolator 以恒定的速率变化
OvershootInterpolator 向前刷一定的值后再回到原来位置
2、Drawable Animation (Frame Animation)
帧动画,类似GIF动画,通过一次显示一系列的drawable来达到动画的效果。
放在/res/drawable
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /></animation-list>
image = (ImageView) findViewById(R.id.frame_image); image.setBackgroundResource(R.anim.frame); AnimationDrawable anim = (AnimationDrawable) image.getBackground(); anim.start();
- Android动画--视图动画
- Android动画--属性动画
- android动画 -- 属性动画
- Android:动画:tween动画
- Android:动画:Frame动画
- Android动画动画二
- Android动画-属性动画
- Android动画【属性动画】
- Android动画-帧动画
- Android动画--帧动画
- Android动画--属性动画
- Android动画-View动画
- android 动画 -- tween动画
- android 动画
- android动画
- android动画
- android动画
- Android动画
- usb中urb相关接口函数
- tomcat、weblogic、jboss的区别,容器的作用
- MySQL分区表
- IOS开发环境搭建
- json 在线解析 正则在线解析
- android动画
- 初探boost之smart_ptr库学习笔记
- 【菜鸟学编程系列】Git操作篇(一)
- shell 编程
- Android:Layout_weight的深刻理解
- 关于Android官网Training课程的翻译
- 学习git
- How to install the C++ Boost Libraries on Windows
- win7温度过高解决方案