android中xml设立Animation动画效果详解

android中xml设置Animation动画效果详解
在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation 画面转换动画。

tweened animation 渐变动画有以下两种类型:

1.alpha   渐变透明度动画效果

2.scale   渐变尺寸伸缩动画效果

frame by frame animation 画面转换动画有以下两种类型:

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

2.rotate    画面转移旋转动画效果

在 res 文件夹下新建一个 anim 的文件夹,并在其中建立一个 animation.xml 文件,具体如下:

复制到剪贴板  XML/HTML代码01.<?xml version="1.0" encoding="utf-8"?> 
02. 
03.<set 
04. 
05.xmlns:android="http://schemas.android.com/apk/res/android"> 
06. 
07.       <translate 
08. 
09.              android:fromXDelta="0"              // 设置动画开始时 x 坐标的位置 
10. 
11.              android:toXDelta="-100%p" // 设置动画结束时 x 坐标的位置 
12. 
13.              android:duration="300"        // 设置动画持续的时间 300 毫秒 
14. 
15.       > 
16. 
17.       </translate> 
18. 
19.       <alpha 
20. 
21.              android:fromAlpha="1.0"            // 设置动画开始时的透明度   1.0 代表不透明 
22. 
23.              android:toAlpha="0.0"   // 设置动画开始时的透明度   0.0 表示完全透明 
24. 
25.              android:duration="300" // 设置动画持续的时间 300 毫秒 
26. 
27.       /> 
28. 
29.       <scale 
30. 
31.          android:interpolator="              // 设置动画出入器 
32. 
33.@android:anim/accelerate_decelerate_interpolator" 
34. 
35.          android:fromXScale="0.0"       // 设置动画开始时 x 坐标上的伸缩长度 
36. 
37.          android:toXScale="1.4"            // 设置动画结束时 x 坐标上的伸缩长度 
38. 
39.          android:fromYScale="0.0"       // 设置动画开始时 y 坐标上的伸缩长度 
40. 
41.          android:toYScale="1.4"     // 设置动画开始时 y 坐标上的伸缩长度 
42. 
43.          android:pivotX="50%"      // 设置动画相对于控件的 x 坐标的位置 
44. 
45.          android:pivotY="50%"      // 设置动画相对于控件的 y 坐标的位置 
46. 
47.          android:fillAfter="false"    // 该动画转化在动画结束前开始应用 
48. 
49.          android:duration="700" // 设置动画持续的时间 
50. 
51./> 
52. 
53.    <rotate 
54. 
55.        android:interpolator=            // 设置动画出入器 
56. 
57."@android:anim/accelerate_decelerate_interpolator" 
58. 
59.        android:fromDegrees="0"     // 设置动画开始时的角度 
60. 
61.        android:toDegrees="+350"           // 设置动画结束时的旋转角度 
62. 
63.        android:pivotX="50%"         // 设置动画相对于控件的 x 坐标的位置 
64. 
65.        android:pivotY="50%"         // 设置动画相对于控件的 y 坐标的位置 
66. 
67.        android:duration="3000"       // 设置动画持续的时间 
68. 
69.    /> 
70. 
71.</set> 
.


利用 AnimationUtils.loadAnimation 将动画加载


复制到剪贴板  Java代码01.Animation animation; 
02. 
03.animation=AnimationUtils.loadAnimation(this, R.anim.animation); 
04. 
05.然后再想要实现动画效果的控件上通过使用 startAnimation() 方法进行添加。 
06. 
07.// 编写动画对象,并且获取自定应的动画样式 
08. 
09.animation=AnimationUtils.loadAnimation(this, R.anim.animation); 
10. 
11.        spinner.setOnTouchListener(new Spinner.OnTouchListener() { 
12. 
13.                     
14. 
15.                     @Override 
16. 
17.                     public boolean onTouch(View v, MotionEvent event) { 
18. 
19.                            // TODO Auto-generated method stub 
20. 
21.                            // 运行动画 animation 
22. 
23.                            v.startAnimation(animation); 
24. 
25.                            // 将 spinner 的可见性设置为不可见状态 
26. 
27.                            v.setVisibility(View.INVISIBLE); 
28. 
29.                            return false; 
30. 
31.                     } 
32. 
33.              });