Android animation 详解

Android动画基础

动画类型Android的animation由四种类型组成XML中

alpha渐变透明度动画效果

scale渐变尺寸伸缩动画效果

translate画面转换位置移动动画效果

rotate画面转移旋转动画效果

JavaCode中

AlphaAnimation渐变透明度动画效果

ScaleAnimation渐变尺寸伸缩动画效果

TranslateAnimation画面转换位置移动动画效果

RotateAnimation画面转移旋转动画效果

Android动画模式Animation主要有两种动画模式:一种是tweened animation(渐变动画)

XML中JavaCode

alphaAlphaAnimation

scaleScaleAnimation

一种是frameby frame(画面转换动画)

XML中JavaCode

translateTranslateAnimation

rotateRotateAnimation

如何在XML文件中定义动画① 打开Eclipse,新建Android工程② 在res目录中新建anim文件夹③ 在anim目录中新建一个myanim.xml(注意文件名小写)④ 加入XML的动画代码

<?xml version="1.0" encoding="utf-8"?><set xmlns:android =""> <alpha/> <scale/> <translate/> <rotate/></set>Android动画解析–XML

<alpha> <?xml version="1.0" encoding="utf-8"?><set xmlns:android="" ><alphaandroid:fromAlpha="0.1"android:toAlpha="1.0"android:duration="3000"/><!– 透明度控制动画效果 alpha浮点型值:fromAlpha 属性为动画起始时透明度toAlpha 属性为动画结束时透明度说明:0.0表示完全透明1.0表示完全不透明以上值取0.0-1.0之间的float数据类型的数字长整型值:duration 属性为动画持续时间说明:时间以毫秒为单位–></set><scale> <?xml version="1.0" encoding="utf-8"?><set xmlns:android=""> <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:duration="700" /></set><!– 尺寸伸缩动画效果 scale属性:interpolator 指定一个动画的插入器在我试验过程中,使用android.res.anim中的资源 时候发现有三种动画插入器:accelerate_decelerate_interpolator 加速-减速 动画插入器accelerate_interpolator加速-动画插入器decelerate_interpolator减速- 动画插入器其他的属于特定的动画效果浮点型值:fromXScale 属性为动画起始时 X坐标上的伸缩尺寸toXScale 属性为动画结束时 X坐标上的伸缩尺寸fromYScale 属性为动画起始时Y坐标上的伸缩尺寸toYScale 属性为动画结束时Y坐标上的伸缩尺寸说明:以上四种属性值0.0表示收缩到没有1.0表示正常无伸缩值小于1.0表示收缩值大于1.0表示放大pivotX属性为动画相对于物件的X坐标的开始位置pivotY属性为动画相对于物件的Y坐标的开始位置说明:以上两个属性值 从0%-100%中取值50%为物件的X或Y方向坐标上的中点位置长整型值:duration 属性为动画持续时间说明: 时间以毫秒为单位布尔型值:fillAfter 属性 当设置 为true ,,该动画转化在动画结束后被应用–><translate> <?xml version="1.0" encoding="utf-8"?><set xmlns:android=""><translateandroid:fromXDelta="30"android:toXDelta="-80"android:fromYDelta="30"android:toYDelta="300"android:duration="2000"/><!– translate 位置转移动画效果整型值:fromXDelta 属性为动画起始时 X坐标上的位置toXDelta 属性为动画结束时 X坐标上的位置fromYDelta 属性为动画起始时 Y坐标上的位置toYDelta 属性为动画结束时 Y坐标上的位置注意:没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物长整型值:duration 属性为动画持续时间说明: 时间以毫秒为单位–></set><rotate> <?xml version="1.0" encoding="utf-8"?><set xmlns:android=""><rotateandroid:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromDegrees="0"android:toDegrees="+350"android:pivotX="50%"android:pivotY="50%"android:duration="3000" /> <!– rotate 旋转动画效果属性:interpolator 指定一个动画的插入器在我试验过程中,使用android.res.anim中的资源时候发现有三种动画插入器:accelerate_decelerate_interpolator 加速-减速 动画插入器accelerate_interpolator加速-动画插入器decelerate_interpolator减速- 动画插入器其他的属于特定的动画效果浮点数型值:fromDegrees 属性为动画起始时物件的角度toDegrees 属性为动画结束时物件旋转的角度 可以大于360度说明:当角度为负数——表示逆时针旋转当角度为正数——表示顺时针旋转(负数from——to正数:顺时针旋转)(负数from——to负数:逆时针旋转)(正数from——to正数:顺时针旋转)(正数from——to负数:逆时针旋转)pivotX属性为动画相对于物件的X坐标的开始位置pivotY属性为动画相对于物件的Y坐标的开始位置说明:以上两个属性值 从0%-100%中取值50%为物件的X或Y方向坐标上的中点位置长整型值:duration 属性为动画持续时间说明:时间以毫秒为单位–></set>//如何使用XML 中的动画效果 public static Animation loadAnimation (Context context, int id)//第一个参数Context为程序 的上下文 //第二个参数id为动画XML文件的引用//例子 :myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件复制代码如何在Java 代码中定义动画 //在代码中定义 动画实例 对象private Animation myAnimation_Alpha;private Animation myAnimation_Scale;private Animation myAnimation_Translate;private Animation myAnimation_Rotate;//根据各自的构造方法来初始化一个实例对象myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);Android动画解析–JavaCodeAlphaAnimation① AlphaAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

复制代码

② AlphaAnimation类对象构造

复制代码

③ 设置动画持续时间

myAnimation_Alpha.setDuration(5000);//设置时间持续时间为 5000毫秒

复制代码

ScaleAnimation① ScaleAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

复制代码

② ScaleAnimation类对象构造

复制代码

③ 设置动画持续时间

myAnimation_Scale.setDuration(700);//设置时间持续时间为 700毫秒

复制代码

TranslateAnimation① TranslateAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

复制代码

② TranslateAnimation类对象构造

复制代码

③ 设置动画持续时间

myAnimation_Translate.setDuration(2000);//设置时间持续时间为 2000毫秒

复制代码

RotateAnimation① RotateAnimation类对象定义

private AlphaAnimation myAnimation_Alpha;

复制代码

② RotateAnimation类对象构造

复制代码

③ 设置动画持续时间

myAnimation_Rotate.setDuration(3000);//设置时间持续时间为 3000毫秒

复制代码

通电话,旅行,重复一个承诺和梦想,

Android animation 详解

相关文章:

你感兴趣的文章:

标签云: