动画效果编程基础--AnimationAndroid    
  
动画类型    
  
Android的animation由四种类型组成    
  
XML中    
alpha    
渐变透明度动画效果    
scale    
渐变尺寸伸缩动画效果    
translate    
画面转换位置移动动画效果    
rotate    
画面转移旋转动画效果    
  
  
JavaCode中    
AlphaAnimation    
渐变透明度动画效果    
ScaleAnimation    
渐变尺寸伸缩动画效果    
TranslateAnimation    
画面转换位置移动动画效果    
RotateAnimation    
画面转移旋转动画效果    
  
Android动画模式    
  
Animation主要有两种动画模式:    
  
一种是tweened animation(渐变动画)    
XML中    
JavaCode    
alpha    
AlphaAnimation    
scale    
ScaleAnimation    
  
  
一种是frame by frame(画面转换动画)    
XML中    
JavaCode    
translate    
TranslateAnimation    
rotate    
RotateAnimation    
  
  
  
如何在XML文件中定义动画    
  
① 打开Eclipse,新建Android工程    
② 在res目录中新建anim文件夹    
③ 在anim目录中新建一个myanim.xml(注意文件名小写)    
④ 加入XML的动画代码

1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3 <alpha/>
4 <scale/>
5 <translate/>
6 <rotate/>
7 </set>

Android动画解析--XML

<alpha>

 1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android" >
3 <alpha
4 android:fromAlpha="0.1"
5 android:toAlpha="1.0"
6 android:duration="3000"
7
8 />
9 <!-- 透明度控制动画效果 alpha
10 浮点型值:
11 fromAlpha 属性为动画起始时透明度
12 toAlpha 属性为动画结束时透明度
13 说明:
14 0.0表示完全透明
15 1.0表示完全不透明
16 以上值取0.0-1.0之间的float数据类型的数字
17
18 长整型值:
19 duration 属性为动画持续时间
20 说明:
21 时间以毫秒为单位
22 -->
23 </set>

<scale>

 1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3 <scale
4 android:interpolator=
5 "@android:anim/accelerate_decelerate_interpolator"
6 android:fromXScale="0.0"
7 android:toXScale="1.4"
8 android:fromYScale="0.0"
9 android:toYScale="1.4"
10 android:pivotX="50%"
11 android:pivotY="50%"
12 android:fillAfter="false"
13 android:startOffset=“700”
14 android:duration="700" />
15 </set>
16 <!-- 尺寸伸缩动画效果 scale
17 属性:interpolator 指定一个动画的插入器
18 在我试验过程中,使用android.res.anim中的资源时候发现
19 有三种动画插入器:
20 accelerate_decelerate_interpolator 加速-减速 动画插入器
21 accelerate_interpolator 加速-动画插入器
22 decelerate_interpolator 减速- 动画插入器
23 其他的属于特定的动画效果
24 浮点型值:
25
26 fromXScale 属性为动画起始时 X坐标上的伸缩尺寸
27 toXScale 属性为动画结束时 X坐标上的伸缩尺寸
28
29 fromYScale 属性为动画起始时Y坐标上的伸缩尺寸
30 toYScale 属性为动画结束时Y坐标上的伸缩尺寸
31 startOffset 属性为从上次动画停多少时间开始执行下个动画
32
33 说明:
34 以上四种属性值
35
36 0.0表示收缩到没有
37 1.0表示正常无伸缩
38 值小于1.0表示收缩
39 值大于1.0表示放大
40
41 pivotX 属性为动画相对于物件的X坐标的开始位置
42 pivotY 属性为动画相对于物件的Y坐标的开始位置
43
44 说明:
45 以上两个属性值 从0%-100%中取值
46 50%为物件的X或Y方向坐标上的中点位置
47
48 长整型值:
49 duration 属性为动画持续时间
50 说明: 时间以毫秒为单位
51
52 布尔型值:
53 fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
54 -->

<translate>

 1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3 <translate
4 android:fromXDelta="30"
5 android:toXDelta="-80"
6 android:fromYDelta="30"
7 android:toYDelta="300"
8 android:duration="2000"
9 />
10 <!-- translate 位置转移动画效果
11 整型值:
12 fromXDelta 属性为动画起始时 X坐标上的位置
13 toXDelta 属性为动画结束时 X坐标上的位置
14 fromYDelta 属性为动画起始时 Y坐标上的位置
15 toYDelta 属性为动画结束时 Y坐标上的位置
16 注意:
17 没有指定fromXType toXType fromYType toYType 时候,
18 默认是以自己为相对参照物
19 长整型值:
20 duration 属性为动画持续时间
21 说明: 时间以毫秒为单位
22 -->
23 </set>

<rotate>

 1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3 <rotate
4 android:interpolator="@android:anim/accelerate_decelerate_interpolator"
5 android:fromDegrees="0"
6 android:toDegrees="+350"
7 android:pivotX="50%"
8 android:pivotY="50%"
9 android:duration="3000" />
10 <!-- rotate 旋转动画效果
11 属性:interpolator 指定一个动画的插入器
12 在我试验过程中,使用android.res.anim中的资源时候发现
13 有三种动画插入器:
14 accelerate_decelerate_interpolator 加速-减速 动画插入器
15 accelerate_interpolator 加速-动画插入器
16 decelerate_interpolator 减速- 动画插入器
17 其他的属于特定的动画效果
18
19 浮点数型值:
20 fromDegrees 属性为动画起始时物件的角度
21 toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
22
23 说明:
24 当角度为负数——表示逆时针旋转
25 当角度为正数——表示顺时针旋转
26 (负数from——to正数:顺时针旋转)
27 (负数from——to负数:逆时针旋转)
28 (正数from——to正数:顺时针旋转)
29 (正数from——to负数:逆时针旋转)
30
31 pivotX 属性为动画相对于物件的X坐标的开始位置
32 pivotY 属性为动画相对于物件的Y坐标的开始位置
33
34 说明: 以上两个属性值 从0%-100%中取值
35 50%为物件的X或Y方向坐标上的中点位置
36
37 长整型值:
38 duration 属性为动画持续时间
39 说明: 时间以毫秒为单位
40 -->
41 </set>

如何使用XML中的动画效果

1 public static Animation loadAnimation (Context context, int id)
2 //第一个参数Context为程序的上下文
3 //第二个参数id为动画XML文件的引用
4 //例子:
5 myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
6 //使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件

如何在Java代码中定义动画

 1 //在代码中定义 动画实例对象
2 private Animation myAnimation_Alpha;
3 private Animation myAnimation_Scale;
4 private Animation myAnimation_Translate;
5 private Animation myAnimation_Rotate;
6
7 //根据各自的构造方法来初始化一个实例对象
8 myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
9
10 myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
11 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
12
13 myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
14
15 myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,
16 Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

Android动画解析--JavaCode

AlphaAnimation    
  
① AlphaAnimation类对象定义

1 private AlphaAnimation myAnimation_Alpha;

② AlphaAnimation类对象构造

1 AlphaAnimation(float fromAlpha, float toAlpha)
2 //第一个参数fromAlpha为 动画开始时候透明度
3 //第二个参数toAlpha为 动画结束时候透明度
4 myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
5 //说明:
6 // 0.0表示完全透明
7 // 1.0表示完全不透明

③ 设置动画持续时间

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

ScaleAnimation

① ScaleAnimation类对象定义

1 private AlphaAnimation myAnimation_Alpha;

② ScaleAnimation类对象构造

 1 ScaleAnimation(float fromX, float toX, float fromY, float toY,
2 int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
3 //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸
4 //第二个参数toX为动画结束时 X坐标上的伸缩尺寸
5 //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸
6 //第四个参数toY为动画结束时Y坐标上的伸缩尺寸
7
8 //第五个参数pivotXType为动画在X轴相对于物件位置类型
9 //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置
10 //第七个参数pivotXType为动画在Y轴相对于物件位置类型
11 //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置
12 myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
13 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

③ 设置动画持续时间

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

TranslateAnimation

① TranslateAnimation类对象定义

1 private AlphaAnimation myAnimation_Alpha;

② TranslateAnimation类对象构造

1 TranslateAnimation(float fromXDelta, float toXDelta,
2 float fromYDelta, float toYDelta)
3 //第一个参数fromXDelta为动画起始时 X坐标上的移动位置
4 //第二个参数toXDelta为动画结束时 X坐标上的移动位置
5 //第三个参数fromYDelta为动画起始时Y坐标上的移动位置
6 //第四个参数toYDelta为动画结束时Y坐标上的移动位置

③ 设置动画持续时间

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

RotateAnimation

① RotateAnimation类对象定义

1 private AlphaAnimation myAnimation_Alpha;

② RotateAnimation类对象构造

 1 RotateAnimation(float fromDegrees, float toDegrees,
2 int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
3 //第一个参数fromDegrees为动画起始时的旋转角度
4 //第二个参数toDegrees为动画旋转到的角度
5 //第三个参数pivotXType为动画在X轴相对于物件位置类型
6 //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置
7 //第五个参数pivotXType为动画在Y轴相对于物件位置类型
8 //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置
9 myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,
10 Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

③ 设置动画持续时间

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

如何使用Java代码中的动画效果    
  
使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果   
  
  动画效果的次序

 1 android:animationOrder="random"  //随机
2
3
4 android:animationOrder="reverse"//逆向
5
6
7
8
9 gridLayoutAnimation
10
11
12 android:directionPriority="row"
13
14 android:directionPriority="column"
15
16 android:direction="right_to_left|bottom_to_top"

android anim 动画效果(转)的更多相关文章

  1. android anim 动画效果

    动画效果编程基础--AnimationAndroid       动画类型       Android的animation由四种类型组成       XML中    alpha    渐变透明度动画效 ...

  2. Android ViewPager 动画效果

    找到个不错的开源项目:https://github.com/jfeinstein10/JazzyViewPager Android ViewPager 动画效果   

  3. android Animation 动画效果介绍

    Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动 ...

  4. Android View动画效果—透明效果,旋转效果(二)

    一:动画效果 方法一:动画效果用AlphaAnimation类.直接加入 AlphaAnimation aa = new AlphaAnimation(0,1); //设置透明度 aa.setDura ...

  5. Android Animation动画效果简介

    AlphaAnimation 淡入淡出动画  <alpha>A fade-in or fade-out animation. Represents an AlphaAnimation. a ...

  6. Android 使用动画效果后的控件位置处理 类似系统通知栏下拉动画

    Android的动画的使用,请参考.Android的动画,在设计方面,我有点不太理解,觉得这样搞很怪,因为在控件动画后,即使设置了停留在动画结束时的位置,我们也确实看到了控件停在那个位置,但其实该控件 ...

  7. 【Android开发日记】之基础篇(二)——Android的动画效果

          什么是动画,动画的本质是通过连续不断地显示若干图像来产生“动”起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉)每隔若干 ...

  8. Android插屏动画效果

    公司研发SDK,须要类似有米插屏的动画效果,研究了下,写了一个DEMO,凝视非常具体了. <span style="font-size:24px;">package c ...

  9. Android 吸入动画效果详解

    1,背景 吸入(Inhale)效果,最初我是在iOS上面看到的,它是在Note程序中,用户可能添加了一页记录,在做删除时,它的删除效果是:这一页内容吸入到一个垃圾框的图标里面.请看下图所示: ==== ...

随机推荐

  1. php实现返回上一页的功能的3种有效方法

    php实现返回上一页的功能的3种有效方法 header(location:你的上一页的路径);   //   注意这个函数前不能有输出 header(location:.getenv("HT ...

  2. magento站点还原到本地

    问题描述 首先将网站文件夹解压到xampp/htdocs/wenjianjia目录下,然后替换sql文件里的域名为localhost/wenjianjia.然后访问前台,正常.访问后台,出问题了 Ma ...

  3. opencv在VS2010命令行编译过程

    最近这两天一直在研究命令行参数的编译,现代吗如下: #include <highgui.h> #include <math.h> #include <cv.h> I ...

  4. 物联网操作系统 - Contiki

    What is Contiki? Contiki is an open source operating system for the Internet of Things. Contiki conn ...

  5. Jcrop 做图片剪裁 在IE中无法显示问题解决办法

    我遇到的Jcrop做剪裁无法显示的问题 是在IE8下发生的(在 firfox he chrome 中是显示正常的) 解决办法 是在一个图片加载完成后在 初始化 Jcrop:1.预加载图片的方法 var ...

  6. 转: 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c

    4.12 静态模式静态模式规则是这样一个规则:规则存在多个目标,并且不同的目标可以根据目标文件的名字来自动构造出依赖文件.静态模式规则比多目标规则更通用,它不需要多个目标具有相同的依赖.但是静态模式规 ...

  7. 如何重载ComboBox 使其下拉按钮(带下箭头的)和下拉列表的垂直滚动条的宽度改变?(自绘ComboBox) [转]

    原文地址:http://bbs.csdn.net/topics/390135022 http://blog.csdn.net/scsdn/article/details/4363299 想使用winf ...

  8. hadoop各版本下载

    http://hadoop.apache.org/ Download Hadoop from the release page. http://hadoop.apache.org/releases.h ...

  9. android.support.v7.widget.Toolbar 中menu图标不显示问题

    <?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http:// ...

  10. jQuery--Promise object

    http://blog.mediumequalsmessage.com/promise-deferred-objects-in-javascript-pt2-practical-use http:// ...