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></FONT></FONT>
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. <!-- 透明度控制动画效果 alpha
9. 浮点型值:
10. fromAlpha 属性为动画起始时透明度
11. toAlpha 属性为动画结束时透明度
12. 说明:
13. 0.0表示完全透明
14. 1.0表示完全不透明
15. 以上值取0.0-1.0之间的float数据类型的数字
16.
17. 长整型值:
18. duration 属性为动画持续时间
19. 说明:
20. 时间以毫秒为单位
21. -->
22. </set>
23.
<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:duration="700" />
14. </set>
15. <!-- 尺寸伸缩动画效果 scale
16. 属性:interpolator 指定一个动画的插入器
17. 在我试验过程中,使用android.res.anim中的资源时候发现
18. 有三种动画插入器:
19. accelerate_decelerate_interpolator 加速-减速 动画插入器
20. accelerate_interpolator 加速-动画插入器
21. decelerate_interpolator 减速- 动画插入器
22. 其他的属于特定的动画效果
23. 浮点型值:
24.
25. fromXScale 属性为动画起始时 X坐标上的伸缩尺寸
26. toXScale 属性为动画结束时 X坐标上的伸缩尺寸
27.
28. fromYScale 属性为动画起始时Y坐标上的伸缩尺寸
29. toYScale 属性为动画结束时Y坐标上的伸缩尺寸
30.
31. 说明:
32. 以上四种属性值
33.
34. 0.0表示收缩到没有
35. 1.0表示正常无伸缩
36. 值小于1.0表示收缩
37. 值大于1.0表示放大
38.
39. pivotX 属性为动画相对于物件的X坐标的开始位置
40. pivotY 属性为动画相对于物件的Y坐标的开始位置
41.
42. 说明:
43. 以上两个属性值 从0%-100%中取值
44. 50%为物件的X或Y方向坐标上的中点位置
45.
46. 长整型值:
47. duration 属性为动画持续时间
48. 说明: 时间以毫秒为单位
49.
50. 布尔型值:
51. fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
52. -->
53.
<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></FONT></FONT>
<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. 当角度为正数——表示顺时针旋转
27. (负数from——to正数:顺时针旋转)
28. (负数from——to负数:逆时针旋转)
29. (正数from——to正数:顺时针旋转)
30. (正数from——to负数:逆时针旋转)
31.
32. pivotX 属性为动画相对于物件的X坐标的开始位置
33. pivotY 属性为动画相对于物件的Y坐标的开始位置
34.
35. 说明: 以上两个属性值 从0%-100%中取值
36. 50%为物件的X或Y方向坐标上的中点位置
37.
38. 长整型值:
39. duration 属性为动画持续时间
40. 说明: 时间以毫秒为单位
41. -->
42. </set>
43.
如何使用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文件
7.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator= "@android:anim/decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.5"
android:fromYScale="0.0"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:duration="10000"
android:repeatCount="1"
android:repeatMode="reverse" />
</set>
<!--
fromXDelta,fromYDelta 起始时X,Y座标,屏幕右下角的座标是X:320,Y:480
toXDelta, toYDelta 动画结束时X,Y的座标 --> <!--
interpolator 指定动画插入器
常见的有加速减速插入器 accelerate_decelerate_interpolator
加速插入器 accelerate_interpolator,
减速插入器 decelerate_interpolator。
fromXScale,fromYScale, 动画开始前X,Y的缩放,0.0为不显示, 1.0为正常大小
toXScale,toYScale, 动画最终缩放的倍数, 1.0为正常大小,大于1.0放大
pivotX, pivotY 动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始
startOffset, 动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,
单位毫秒 duration,一次动画效果消耗的时间,单位毫秒,
值越小动画速度越快 repeatCount,动画重复的计数,动画将会执行该值+1次
repeatMode,动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。
restart为重新执行,方向不变 -->
标签:xml,动画,XML,interpolator,duration,android,属性 From: https://blog.51cto.com/u_15907753/5926336