XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺
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. <alpha4. android:fromAlpha="0.1"5. android:toAlpha="1.0"6. android:duration="3000"7. /> 8. <!-- 透明度控制动画效果 alpha9. 浮点型值: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. <!-- 尺寸伸缩动画效果 scale16. 属性: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. <translate4. 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为重新执行,方向不变 -->