`

Android的 animation (总结)

 
阅读更多

Android<wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">animation</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">由四种类型组成</span><wbr></wbr></wbr></wbr>

XML<wbr><span style="word-wrap:normal; word-break:normal; line-height:28px; font-family:宋体">中</span></wbr>

alpha<wbr></wbr> 渐变透明度动画效果<wbr></wbr>
scale<wbr></wbr> 渐变尺寸伸缩动画效果<wbr></wbr>
translate<wbr></wbr> 画面转换位置移动动画效果<wbr></wbr>
rotate<wbr></wbr> 画面转移旋转动画效果<wbr></wbr>



Java<wbr>Code<span style="word-wrap:normal; word-break:normal; line-height:28px; font-family:宋体">中</span></wbr>

AlphaAnimation<wbr></wbr> 渐变透明度动画效果<wbr></wbr>
ScaleAnimation<wbr></wbr> 渐变尺寸伸缩动画效果<wbr></wbr>
TranslateAnimation<wbr></wbr> 画面转换位置移动动画效果<wbr></wbr>
RotateAnimation<wbr></wbr> 画面转移旋转动画效果<wbr></wbr>


Android动画模式<wbr></wbr>

Animation主要有两种动画模式:<wbr></wbr>

一种是tweened animation(<wbr><span style="word-wrap:normal; word-break:normal; line-height:28px; font-family:宋体">渐变动画</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:28px; font-family:'Times new roman'">)</span></wbr></wbr>

XML<wbr></wbr> JavaCode<wbr></wbr>
alpha<wbr></wbr> AlphaAnimation<wbr></wbr>
scale<wbr></wbr> ScaleAnimation<wbr></wbr>



一种是frame by frame(<wbr><span style="word-wrap:normal; word-break:normal; line-height:28px; font-family:宋体">画面转换动画</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:28px; font-family:'Times new roman'">)</span></wbr></wbr>

XML<wbr></wbr> JavaCode<wbr></wbr>
translate<wbr></wbr> TranslateAnimation<wbr></wbr>
rotate<wbr></wbr> RotateAnimation<wbr></wbr>




如何在XML<wbr><span style="word-wrap:normal; word-break:normal; line-height:31px; font-family:宋体"><span style="word-wrap:normal; word-break:normal; line-height:31px">文件</span><wbr>中<span style="word-wrap:normal; word-break:normal; line-height:31px">定义</span><wbr>动画</wbr></wbr></span><wbr></wbr></wbr>

① <wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">打开<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'"><span style="word-wrap:normal; word-break:normal; line-height:21px">Eclipse</span><wbr></wbr></span><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">,新建</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">Android</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">工程</span><wbr></wbr></wbr></wbr></span><br><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">② </span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">在<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">res</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">目录中新建</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">anim</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">文件夹</span><wbr></wbr></wbr></wbr></wbr></span><br><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">③ </span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">在<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">anim</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">目录中新建一个</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">myanim.xml(</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">注意文件名小写</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">)</span><wbr></wbr></wbr></wbr></wbr></wbr></span><br><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">④ </span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">加入<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Times new roman'">XML</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">的动画<span style="word-wrap:normal; word-break:normal; line-height:21px">代码</span></span></wbr></span></wbr></wbr></wbr></wbr>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android<wbr>="http://schemas.android.com/apk/res/android"&gt;</wbr>
  3. <wbr><wbr>&lt;alpha/&gt;</wbr></wbr>
  4. <wbr><wbr>&lt;scale/&gt;</wbr></wbr>
  5. <wbr><wbr>&lt;translate/&gt;</wbr></wbr>
  6. <wbr><wbr>&lt;rotate/&gt;</wbr></wbr>
  7. </set>
复制代码



Android动画解析<wbr></wbr>--XML<wbr></wbr>

<alpha><wbr><br></wbr>

  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. <wbr><wbr><wbr><wbr><wbr><wbr>浮点型值:</wbr></wbr></wbr></wbr></wbr></wbr>
  10. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>fromAlpha 属性为动画起始时透明度</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  11. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>toAlpha<wbr><wbr>属性为动画结束时透明度</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  12. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>说明:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  13. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0.0表示完全透明</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  14. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>1.0表示完全不透明</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  15. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>以上值取0.0-1.0之间的float<span style="word-wrap:normal; word-break:normal; line-height:21px">数据</span><wbr>类型的数字</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  16. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  17. <wbr><wbr><wbr><wbr><wbr><wbr>长整型值:</wbr></wbr></wbr></wbr></wbr></wbr>
  18. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>duration<wbr><wbr>属性为动画持续时间</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  19. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>说明:<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  20. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>时间以毫秒为单位</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  21. -->
  22. </set>
复制代码



<scale><wbr><br></wbr>

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



<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. <wbr><wbr><wbr><wbr><wbr><wbr>整型值:</wbr></wbr></wbr></wbr></wbr></wbr>
  12. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>fromXDelta 属性为动画起始时 X坐标上的位置<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  13. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>toXDelta<wbr><wbr>属性为动画结束时 X坐标上的位置</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  14. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>fromYDelta 属性为动画起始时 Y坐标上的位置</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  15. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>toYDelta<wbr><wbr>属性为动画结束时 Y坐标上的位置</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  16. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>注意:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  17. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>没有指定fromXType toXType fromYType toYType 时候,</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  18. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>默认是以自己为相对参照物<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  19. <wbr><wbr><wbr><wbr><wbr><wbr>长整型值:</wbr></wbr></wbr></wbr></wbr></wbr>
  20. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>duration<wbr><wbr>属性为动画持续时间</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  21. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>说明:<wbr><wbr>时间以毫秒为单位</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  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. <wbr><wbr><wbr><wbr><wbr><wbr>android:interpolator="@android:anim/accelerate_decelerate_interpolator"</wbr></wbr></wbr></wbr></wbr></wbr>
  5. <wbr><wbr><wbr><wbr><wbr><wbr>android:fromDegrees="0"</wbr></wbr></wbr></wbr></wbr></wbr>
  6. <wbr><wbr><wbr><wbr><wbr><wbr>android:toDegrees="+350"<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  7. <wbr><wbr><wbr><wbr><wbr><wbr>android:pivotX="50%"</wbr></wbr></wbr></wbr></wbr></wbr>
  8. <wbr><wbr><wbr><wbr><wbr><wbr>android:pivotY="50%"<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  9. <wbr><wbr><wbr><wbr><wbr><wbr>android:duration="3000" /&gt;<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  10. <!-- rotate 旋转动画效果
  11. <wbr><wbr><wbr><wbr>属性:interpolator 指定一个动画的插入器</wbr></wbr></wbr></wbr>
  12. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>在我试验过程中,使用android.res.anim中的资源时候发现</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  13. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>有三种动画插入器:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  14. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>accelerate_decelerate_interpolator<wbr><wbr>加速-减速 动画插入器</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  15. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>accelerate_interpolator<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>加速-动画插入器</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  16. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>decelerate_interpolator<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>减速- 动画插入器</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  17. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>其他的属于特定的动画效果</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  18. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  19. <wbr><wbr><wbr><wbr>浮点数型值:</wbr></wbr></wbr></wbr>
  20. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>fromDegrees 属性为动画起始时物件的角度<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  21. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>toDegrees<wbr><wbr>属性为动画结束时物件旋转的角度 可以大于360度<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  22. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  23. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>说明:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  24. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>当角度为负数——表示逆时针旋转</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  25. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>当角度为正数——表示顺时针旋转<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  26. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>(负数from——to正数:顺时针旋转)<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  27. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>(负数from——to负数:逆时针旋转)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  28. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>(正数from——to正数:顺时针旋转)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  29. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>(正数from——to负数:逆时针旋转)<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  30. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>pivotX<wbr><wbr><wbr><wbr>属性为动画相对于物件的X坐标的开始位置</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  31. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>pivotY<wbr><wbr><wbr><wbr>属性为动画相对于物件的Y坐标的开始位置</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  32. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  33. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>说明:<wbr><wbr><wbr><wbr><wbr><wbr>以上两个属性值 从0%-100%中取值</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  34. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>50%为物件的X或Y方向坐标上的中点位置</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  35. <wbr><wbr><wbr><wbr><wbr><wbr>长整型值:</wbr></wbr></wbr></wbr></wbr></wbr>
  36. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>duration<wbr><wbr>属性为动画持续时间</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  37. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>说明:<wbr><wbr><wbr><wbr>时间以毫秒为单位</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  38. -->
  39. </set>
复制代码



如何使用XML<wbr><span style="word-wrap:normal; word-break:normal; line-height:31px; font-family:宋体">中的动画效果</span></wbr>

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



如何在Java<wbr><span style="word-wrap:normal; word-break:normal; line-height:31px; font-family:宋体">代码中定义动画</span></wbr>

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



Android动画解析<wbr></wbr>--JavaCode<wbr></wbr>


AlphaAnimation<wbr></wbr>

① 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. //<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0.0表示完全透明</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  7. //<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>1.0表示完全不透明</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
复制代码

③ 设置动画持续时间

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




ScaleAnimation<wbr></wbr>

① ScaleAnimation类对象定义

  1. private AlphaAnimation myAnimation_Alpha;
复制代码

② ScaleAnimation类对象构造

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

③ 设置动画持续时间

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




TranslateAnimation<wbr></wbr>



① TranslateAnimation类对象定义

  1. private AlphaAnimation myAnimation_Alpha;
复制代码

② TranslateAnimation类对象构造

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

③ 设置动画持续时间

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



RotateAnimation<wbr></wbr>
① <wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">RotateAnimation<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">类对象定义</span></span></wbr>

  1. private AlphaAnimation myAnimation_Alpha;
复制代码


② <wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">RotateAnimation<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">类对象构造</span></span></wbr>

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


③ <wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">设置动画持续时间</span></wbr>

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



如何使用Java<wbr><span style="word-wrap:normal; word-break:normal; line-height:31px; font-family:宋体">代码中的动画效果</span><wbr></wbr></wbr>

使用从View<wbr></wbr>父类继承过来的方法<wbr></wbr>startAnimation<wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:10.5pt">()<span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">来为</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Courier new'">View</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">或是子类</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:'Courier new'">View</span><wbr><span style="word-wrap:normal; word-break:normal; line-height:21px; font-family:宋体">等等添加一个动画效果</span></wbr></wbr></wbr></wbr></span></wbr>

  1. public void startAnimation (Animation animation)
动画<wbr>专题研究 二<br><br></wbr>动画效果<wbr>二 ----Frame Animation</wbr><wbr></wbr>


  • 新建工程 myFrameAnimation

  • 在main.xml布局中添加view子类,调整一下,效果如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android<wbr>="http://schemas.android.com/apk/res/android"</wbr>
  3. <wbr><wbr>android:prientation="vertical" android:layout_width="fill_parent"</wbr></wbr>
  4. <wbr><wbr>android:layout_height="fill_parent"&gt;</wbr></wbr>
  5. <wbr><wbr>&lt;LinearLayout android:prientation="horizontal"</wbr></wbr>
  6. <wbr><wbr><wbr><wbr><wbr><wbr>android:layout_width="fill_parent" android:layout_height="wrap_content"</wbr></wbr></wbr></wbr></wbr></wbr>
  7. <wbr><wbr><wbr><wbr><wbr><wbr>android:background="@drawable/bt_group_back" android:layout_marginTop="10px"&gt;</wbr></wbr></wbr></wbr></wbr></wbr>
  8. <wbr><wbr><wbr><wbr><wbr><wbr>&lt;Button android:text="<span style="word-wrap:normal; word-break:normal; line-height:21px">播放</span><wbr>动画" android:layout_width="100px"</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  9. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>android:id="@+id/Button_start" android:layout_height="fill_parent"&gt;&lt;/Button&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  10. <wbr><wbr><wbr><wbr><wbr><wbr>&lt;Button android:layout_width="100px" android:text="停止动画"</wbr></wbr></wbr></wbr></wbr></wbr>
  11. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>android:id="@+id/Button_stop" android:layout_height="fill_parent"&gt;&lt;/Button&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  12. <wbr><wbr><wbr><wbr><wbr><wbr>&lt;CheckBox android:text="动画重复" android:layout_width="100px"</wbr></wbr></wbr></wbr></wbr></wbr>
  13. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>android:id="@+id/CheckBox_ifCycle_orNot" style="?android:attr/starStyle"</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  14. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>android:layout_height="fill_parent"&gt;&lt;/CheckBox&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  15. <wbr><wbr>&lt;/LinearLayout&gt;</wbr></wbr>
  16. <wbr><wbr>&lt;Image<span style="word-wrap:normal; word-break:normal; line-height:21px">View</span><wbr>android:id="@+id/rocket_image"</wbr></wbr></wbr>
  17. <wbr><wbr><wbr><wbr><wbr><wbr>android:layout_width="80px" android:layout_height="80px"</wbr></wbr></wbr></wbr></wbr></wbr>
  18. <wbr><wbr><wbr><wbr><wbr><wbr>android:background="@drawable/android_large"</wbr></wbr></wbr></wbr></wbr></wbr>
  19. <wbr><wbr><wbr><wbr><wbr><wbr>android:layout_marginLeft="100dp" android:layout_marginTop="100dp"&gt;&lt;/ImageView&gt;</wbr></wbr></wbr></wbr></wbr></wbr>
  20. </LinearLayout>
复制代码
  • 找几个动态图片,把它分成单个图。(主要是为了讲解/是用Frame Animation效果,AnimationDrawable)


  • 修改mainActivity.java的代码
  1. package zyf.my.frame.animation;
  2. import android.app<wbr>.Activity;</wbr>
  3. import android.graphics.drawable.AnimationDrawable;
  4. import android.os.Bundle;
  5. import android.view.MotionEvent;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.CheckBox;
  9. import android.widget.ImageView;
  10. import android.widget.Toast;
  11. public class myFrameAnimatino extends Activity implements Button.OnClickListener {
  12. <wbr><wbr></wbr></wbr>
  13. <wbr><wbr>AnimationDrawable frameAnimation;</wbr></wbr>
  14. <wbr><wbr></wbr></wbr>
  15. <wbr><wbr>ImageView myImage;</wbr></wbr>
  16. <wbr><wbr></wbr></wbr>
  17. <wbr><wbr>Button start,stop;</wbr></wbr>
  18. <wbr><wbr>CheckBox Cycle;</wbr></wbr>
  19. <wbr><wbr>boolean isChecked_cycle=true;</wbr></wbr>
  20. <wbr><wbr></wbr></wbr>
  21. <wbr><wbr>@Override</wbr></wbr>
  22. <wbr><wbr>public void onCreate(Bundle savedInstanceState) {</wbr></wbr>
  23. <wbr><wbr><wbr><wbr><wbr><wbr>super.onCreate(savedInstanceState);</wbr></wbr></wbr></wbr></wbr></wbr>
  24. <wbr><wbr><wbr><wbr><wbr><wbr>setContentView(R.layout.main);</wbr></wbr></wbr></wbr></wbr></wbr>
  25. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  26. <wbr><wbr><wbr><wbr><wbr><wbr>start=(Button) findViewById(R.id.Button_start);</wbr></wbr></wbr></wbr></wbr></wbr>
  27. <wbr><wbr><wbr><wbr><wbr><wbr>stop=(Button) findViewById(R.id.Button_stop);</wbr></wbr></wbr></wbr></wbr></wbr>
  28. <wbr><wbr><wbr><wbr><wbr><wbr>Cycle=(CheckBox) findViewById(R.id.CheckBox_ifCycle_orNot);</wbr></wbr></wbr></wbr></wbr></wbr>
  29. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  30. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  31. <wbr><wbr><wbr><wbr><wbr><wbr>myImage = (ImageView) findViewById(R.id.rocket_image);</wbr></wbr></wbr></wbr></wbr></wbr>
  32. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  33. <wbr><wbr><wbr><wbr><wbr><wbr>myImage.setBackgroundResource(R.anim.myframeanimation);</wbr></wbr></wbr></wbr></wbr></wbr>
  34. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  35. <wbr><wbr><wbr><wbr><wbr><wbr>frameAnimation = (AnimationDrawable) myImage.getBackground();</wbr></wbr></wbr></wbr></wbr></wbr>
  36. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  37. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  38. <wbr><wbr><wbr><wbr><wbr><wbr>start.setOnClickListener(this);</wbr></wbr></wbr></wbr></wbr></wbr>
  39. <wbr><wbr><wbr><wbr><wbr><wbr>stop.setOnClickListener(this);</wbr></wbr></wbr></wbr></wbr></wbr>
  40. <wbr><wbr>}</wbr></wbr>
  41. <wbr><wbr></wbr></wbr>
  42. <wbr><wbr>@Override</wbr></wbr>
  43. <wbr><wbr>public boolean onTouchEvent(MotionEvent event) {</wbr></wbr>
  44. <wbr><wbr><wbr><wbr><wbr><wbr>frameAnimation.setOneShot(isChecked_cycle);</wbr></wbr></wbr></wbr></wbr></wbr>
  45. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  46. <wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated method stub</wbr></wbr></wbr></wbr></wbr></wbr>
  47. <wbr><wbr><wbr><wbr><wbr><wbr>if(event.getAction()==MotionEvent.ACTION_DOWN){</wbr></wbr></wbr></wbr></wbr></wbr>
  48. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  49. <wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  50. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>frameAnimation.start();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  51. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  52. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>return true;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  53. <wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
  54. <wbr><wbr><wbr><wbr><wbr><wbr>return super.onTouchEvent(event);</wbr></wbr></wbr></wbr></wbr></wbr>
  55. <wbr><wbr>}</wbr></wbr>
  56. <wbr><wbr></wbr></wbr>
  57. <wbr><wbr>@Override</wbr></wbr>
  58. <wbr><wbr>public void onClick(View button) {</wbr></wbr>
  59. <wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated method stub</wbr></wbr></wbr></wbr></wbr></wbr>
  60. <wbr><wbr><wbr><wbr><wbr><wbr>switch (button.getId()) {</wbr></wbr></wbr></wbr></wbr></wbr>
  61. <wbr><wbr><wbr><wbr><wbr><wbr>case R.id.Button_start:{</wbr></wbr></wbr></wbr></wbr></wbr>
  62. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>if(Cycle.isChecked()){</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  63. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Toast.makeText(this, "动画重复", Toast.LENGTH_LONG).show();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  64. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>isChecked_cycle=false;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  65. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>}else{</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  66. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Toast.makeText(this, "不重复", Toast.LENGTH_LONG).show();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  67. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>isChecked_cycle=true;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  68. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  69. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  70. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  71. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>frameAnimation.setOneShot(isChecked_cycle);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  72. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  73. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>frameAnimation.start();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  74. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  75. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  76. <wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
  77. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>break;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  78. <wbr><wbr><wbr><wbr><wbr><wbr>case R.id.Button_stop:{</wbr></wbr></wbr></wbr></wbr></wbr>
  79. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>if(frameAnimation.isRunning()){</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  80. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  81. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>frameAnimation.stop();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  82. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  83. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  84. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  85. <wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
  86. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>break;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  87. <wbr><wbr><wbr><wbr><wbr><wbr>default:</wbr></wbr></wbr></wbr></wbr></wbr>
  88. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>break;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  89. <wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
  90. <wbr><wbr>}</wbr></wbr>
  91. }










随着对Drewable的深入了解,发现了Drawable更加强大的功能:显示Animation。Android SDK介绍了2种Animation:

  • Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果
  • Frame Animation:顺序播放事先做好的图像,跟电影类似

在使用Animation前,我们先学习如何定义Animation,这对我们使用Animation会有很大的帮助。Animation是以 XML格式定义的,定义好的XML文件存放在res\anim中。由于Tween Animation与Frame Animation的定义、使用都有很大的差异,我们将分开介绍,本篇幅中介绍Tween Animation的定义与使用,后续篇幅再详细介绍Frame Animation。按照XML文档的结构【父节点,子节点,属性】来介绍Tween Animation,其由4种类型:

  • Alpha:渐变透明度动画效果
  • Scale:渐变尺寸伸缩动画效果
  • Translate:画面转换位置移动动画效果
  • Rotate:画面转换位置移动动画效果

在介绍以上4种类型前,先介绍Tween Animation共同的节点属性,关于节点的命名原则,请阅读AndroidManifest.xml文件结构说明<wbr>。</wbr>

表一

属性[类型] 功能 <wbr></wbr>
Duration[long] 属性为动画持续时间 时间以毫秒为单位
fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用
fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用

interpolator

指定一个动画的插入器 有一些常见的插入器
accelerate_decelerate_interpolator
加速-减速 动画插入器
accelerate_interpolator
加速-动画插入器
decelerate_interpolator
减速- 动画插入器
其他的属于特定的动画效果
repeatCount[int] 动画的重复次数 <wbr></wbr>
RepeatMode[int] 定义重复的行为 1:重新开始<wbr>2:plays backward</wbr>
startOffset[long] 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
zAdjustment[int] 定义动画的Z Order的改变 0:保持Z Order不变
1:保持在最上层
-1:保持在最下层

看了以上节点,大家是不是都想开始定义动画了。下面我们就开始结合具体的例子,介绍4种类型各自特有的节点元素。

表二

XML节点 功能说明
alpha 渐变透明度动画效果
<alpha
android:fromAlpha=”0.1″
android:toAlpha=”1.0″
android:duration=”3000″ />
fromAlpha

属性为动画起始时透明度

0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字
toAlpha 属性为动画结束时透明度

表三

scale 渐变尺寸伸缩动画效果
<scale
android: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:startOffset=“700”
android:duration=”700″
android:repeatCount=”10″ />
fromXScale[float] fromYScale[float] 为动画起始时,X、Y坐标上的伸缩尺寸 0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大
toXScale [float]
toYScale[float]
为动画结束时,X、Y坐标上的伸缩尺寸
pivotX[float]
pivotY[float]
为动画相对于物件的X、Y坐标的开始位置 属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
<wbr></wbr> <wbr></wbr> <wbr></wbr> <wbr></wbr>

表四

translate 画面转换位置移动动画效果
<translate
android:fromXDelta=”30″
android:toXDelta=”-80″
android:fromYDelta=”30″
android:toYDelta=”300″
android:duration=”2000″ />
fromXDelta
toXDelta
为动画、结束起始时 X坐标上的位置 <wbr></wbr>
fromYDelta
toYDelta
为动画、结束起始时 Y坐标上的位置 <wbr></wbr>
<wbr></wbr> <wbr></wbr> <wbr></wbr> <wbr></wbr>

表五

rotate 画面转移旋转动画效果
<rotate
android:interpolator=”@android:anim/accelerate_decelerate_interpolator”
android:fromDegrees=”0″
android:toDegrees=”+350″
android:pivotX=”50%”
android:pivotY=”50%”
android:duration=”3000″ />
fromDegrees 为动画起始时物件的角度 说明
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
pivotX
pivotY
为动画相对于物件的X、Y坐标的开始位 说明:以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
<wbr></wbr> <wbr></wbr> <wbr></wbr> <wbr></wbr>

看了上面的例子,想必大家也想看下,这些定义的动画,运行起来是什么样效果,下面运行Scale例子中的动画,界面变化如下:

Animation-1 Aniamtion-2
Aniamtion-3 Animation-4
<wbr></wbr> <wbr></wbr> <wbr></wbr>

按照上面的讲述学习完了Tween Animation的定义,对Tween Animation有了详细的了解,再去了解下Android SDK的animation package(android.view.animation),其提供了操作Tween Animation所有的类。

Android SDK提供了基类:Animation,包含大量的set/getXXXX()函数来设置、读取Animation的属性,也就是前面表一中显示的各种属 性。Tween Animation由4种类型:alpha、scale、translate、roate,在Android SDK中提供了相应的类,Animation类派生出了AlphaAnimation、ScaleAnimation、 TranslateAnimation、RotateAnimation分别实现了平移、旋转、改变 Alpha 值等动画,每个子类都在父类的基础上增加了各自独有的属性。再去看下这几个类的构造函数,是不是与我们在表二、表三、表四、表五种定义的属性完全一样。
Animation

在了解了Tween Animation的定义,对android.view.animation有了一些基本的认识后,开始介绍Tween Animation如何使用。Android SDK提供了2种方法:直接从XML资源中读取Animation,使用Animation子类的构造函数来初始化Animation对象,第二种方法在 看了Android SDK中各个类的说明就知道如何使用了,下面简要说明从XML资源中读取Animation,按照应用程序开发的过程,介绍整个使用的过程,如下:

  1. 创建Android工程;
  2. 导入一张图片资源;
  3. 将res\layout\main.xml中的TextView取代为ImageView;
  4. 在res下创建新的文件夹anim,并在此文件夹下面定义Animation XML文件;
  5. 修改OnCreate()中的代码,显示动画资源;

关键代码,解析如下:
//main.xml中的ImageView
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
//加载动画
Animation hyperspaceJumpAnimation =
AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
//使用ImageView显示动画
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
工程的源代码提供给大家下载,下载地址<wbr>,这里简要解析如下:</wbr>

  • AnimationUtils提供了加载动画的函数,除了函数loadAnimation(),其他的到Android SDK中去详细了解吧;
  • 所谓的动画,也就是对 view 的内容做一次图形变换;



Android画图学习总结(四)——Animation(上)<wbr>中详细介绍了Tween Animation的定义、使用,由于篇幅有限,很多中重要的方面没有说明,这篇文章一方面做个完整的总结说明,另外一方面补充说明上一篇幅遗漏的问题,帮助大家更好的理解Tween Animation。</wbr>

对Tween Animation的本质做个总结:Tween Animation通过对 View 的内容完成一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。具体来讲,预先定义一组指令,这些指令指定了图形变换的类型、触发时间、持续时间。这些指令可以是 以 XML 文件方式定义,也可以是以源代码方式定义。程序沿着时间线执行这些指令就可以实现动画效果。

在这里,我们需要对2个问题进行深入的解析:

  • 动画的运行时如何控制的?
  • 动画的运行模式。

动画的运行时如何控制的?

这个问题,我们也就也就是上一篇幅中提到的Tween Animation,估计大家对什么是Interpolator、到底有什么作用,还是一头雾水,在这里做个详细的说明。按照Android SDK中对interpolator的说明:interpolator定义一个动画的变化率(the rate of change)。这使得基本的动画效果(alpha, scale, translate, rotate)得以加速,减速,重复等。

用通俗的一点的话理解就是:动画的进度使用 Interpolator 控制。Interpolator 定义了动画的变化速度,可以实现匀速、正加速、负加速、无规则变加速等。Interpolator 是基类,封装了所有 Interpolator 的共同方法,它只有一个方法,即 getInterpolation (float input),该方法 maps a point on the timeline to a multiplier to be applied to the transformations of an animation。Android 提供了几个 Interpolator 子类,实现了不同的速度曲线,如下:

AccelerateDecelerateInte<wbr>rpolator</wbr> 在动画开始与介绍的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator 在动画的以均匀的速率改变

对于 LinearInterpolator ,变化率是个常数,即 f (x) = x.
public float getInterpolation(float input) {
return input;
}
Interpolator其他的几个子类,也都是按照特定的算法,实现了对变化率。还可以定义自己的 Interpolator 子类,实现抛物线、自由落体等物理效果。

动画的运行模式

动画的运行模式有两种:

  • 独占模式,即程序主线程进入一个循环,根据动画指令不断刷新屏幕,直到动画结束;
  • 中断模式,即有单独一个线程对时间计数,每隔一定的时间向主线程发通知,主线程接到通知后更新屏幕;

额外补充说明:Transformation 类

Transformation 记录了仿射矩阵 Matrix,动画每触发一次,会对原来的矩阵做一次运算, View 的 Bitmap 与这个矩阵相乘就可实现相应的操作(旋转、平移、缩放等)。Transformation 类封装了矩阵和 alpha 值,它有两个重要的成员,一是 mMatrix,二是 mAlpha。Transformation 类图如下所示:
Transformation

总结说明

图形变换通过仿射矩阵实现。图形变换是图形学中的基本知识,简单来说就是,每种变换都是一次矩阵运算。在 Android 中,Canvas 类中包含当前矩阵,当调用 Canvas.drawBitmap (bmp, x, y, Paint) 绘制时,A ndroid 会先把 bmp 做一次矩阵运算,然后将运算的结果显示在 Canvas 上。这样,编程人员只需不断修改 Canvas 的矩阵并刷新屏幕,View 里的对象就会不停的做图形变换,动画就形成了。

Android画图学习总结(四)——Animation(上)<wbr>中, 我们详细介绍了Tween<wbr>Aniamation,这里我们将介绍另外一种动画Frame Animation。在前面已经说过,Frame Animation是顺序播放事先做好的图像,跟电影类似。不同于animation package, Android SDK提供了另外一个类AnimationDrawable来定义、使用Frame Animation。</wbr></wbr>

Frame Animation可以在XML Resource定义(还是存放到res\anim文件夹下),也可以使用AnimationDrawable中的API定义。由于Tween Animation与Frame Animation有着很大的不同,因此XML定义的格式也完全不一样,其格式是:首先是animation-list根节点,animation- list根节点中包含多个item子节点,每个item节点定义一帧动画:当前帧的drawable资源和当前帧持续的时间。下面对节点的元素加以说明:

XML属性 说明
drawable 当前帧引用的drawable资源
duration 当前帧显示的时间(毫秒为单位)
oneshot 如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。
variablePadding If true, allows the drawable’s padding to change based on the current state that is selected.
visible 规定drawable的初始可见性,默认为flase;

下面就给个具体的XML例子,来定义一帧一帧的动画:
<animation-list xmlns:android=”http://schemas.android.com/apk/res/android”
android:oneshot=”true”>
<item android:drawable=”@drawable/rocket_thrust1″ android:duration=”200″ />
<item android:drawable=”@drawable/rocket_thrust2″ android:duration=”200″ />
<item android:drawable=”@drawable/rocket_thrust3″ android:duration=”200″ />
</animation-list>

上面的XML就定义了一个Frame Animation,其包含3帧动画,3帧动画中分别应用了drawable中的3张图片:rocket_thrust1,rocket_thrust2,rocket_thrust3,每帧动画持续200毫秒。

然后我们将以上XML保存在res/anim/文件夹下,命名为rocket_thrust.xml,显示动画的代码,如下:在OnCreate()中增加如下代码:


ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.anim.rocket_thrust);

rocketAnimation = (AnimationDrawable) rocketImage.getBackground();


最后还需要增加启动动画的代码:
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rocketAnimation.start();<wbr><br> return true;<br> }<br> return super.onTouchEvent(event);<br> }</wbr>

代码运行的结果想必大家应该就知道了(3张图片按照顺序的播放一次),不过有一点需要强调的是:启动Frame Animation动画的代码rocketAnimation.start();不能在OnCreate()中,因为在OnCreate()中 AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。

下面,阅读Android SDK中对AnimationDrawable的介绍,有个简单的了解:

AnimationDrawable

获取、设置动画的属性
int getDuration() 获取动画的时长
int getNumberOfFrames() 获取动画的帧数
boolean isOneShot()

Void setOneShot(boolean oneshot)

获取oneshot属性
设置oneshot属性
void inflate(Resurce r,XmlPullParser p,
AttributeSet attrs)
增加、获取帧动画
Drawable getFrame(int index) 获取某帧的Drawable资源
void addFrame(Drawable frame,int duration) 为当前动画增加帧(资源,持续时长)
动画控制
void start() 开始动画
void run() 外界不能直接掉调用,使用start()替代
boolean<wbr>isRunning()</wbr> 当前动画是否在运行
void stop() 停止当前动画

总结说明

Frame Animation的定义、使用比较简单,在这里已经详细介绍完了,更加深入的学习还是到Android SDK去仔细了解吧,在Android SDK中也包含很多这方面的例子程序。

分享到:
评论

相关推荐

    Android Animation动画资源文件

    总结来说,Android的补间动画通过改变对象的各种属性实现平滑过渡效果,极大地丰富了应用程序的视觉表现力。开发者可以根据需求自由组合不同的动画类型,创建出各种动态效果,提升应用的互动性和吸引力。

    android Animation动画实现loading效果

    总结,通过Android Animation,我们可以轻松创建各种Loading效果,无论是简单的旋转动画,还是复杂的自定义动画。结合补间动画、属性动画和第三方库,开发者能够为应用程序增添更多生动、有趣的交互元素,提升整体的...

    Android代码-Android-Animation-Set

    文章开篇总结性文章:《Android 一共有多少种动画?准确告诉你!》 Ⅰ. View Animation / 视图动画 English explanation can go to read this article Ⅱ. Drawable Animation / 帧动画 / Frame 动画 English ...

    android动画介绍之 自定义Animation动画

    总结,Android的自定义`Animation`动画是通过继承`Animation`类并重写相关方法来实现的,它可以为View创建各种动态效果。然而,随着Android版本的更新,属性动画成为更推荐的选择,因为它提供了更强大、更灵活的动画...

    Android中的Animation的使用

    总结,Android中的动画系统非常丰富,从简单的帧动画到复杂的属性动画,可以满足各种需求。了解和熟练掌握这些动画机制,能够使应用的交互更生动有趣,提升用户满意度。在实际开发中,结合源码学习和使用工具,可以...

    Android animation图片移动效果.zip

    总结起来,"Android animation图片移动效果.zip"是一个关于Android平台图片移动动画的实践项目,通过XML或Java代码实现,可以作为学习Android动画技术的参考。源码说明和提供的网址将为开发者提供更深入的理解和学习...

    Android代码-View中添加Animation.zip

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具。`View`中的动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本压缩包"Android代码-View中添加...

    Android Animation introuduction

    Android animation 介绍和总结

    Android animation_list demo,imageview实现动画效果

    总结来说,`animation_list`是Android平台提供的一种强大的工具,它使得开发者可以轻松地为ImageView添加丰富的动画效果,极大地提升了应用的视觉吸引力。通过理解`animation_list`的工作原理,结合实际的项目练习,...

    Android的动画animation

    总结来说,Android的动画系统提供了丰富的可能性,无论是简单的平移、旋转还是复杂的组合动画,都可以通过补间动画和逐帧动画轻松实现。通过熟练掌握这两种动画机制,开发者可以为用户带来更加生动有趣的交互体验。

    Android项目源码BaseAnimation数百种动画效果集合_androidanimation_disappeard64_

    总结,"Android项目源码BaseAnimation数百种动画效果集合"是一个宝贵的资源,它集成了大量的Android原生动画效果,对于开发者来说,无论是学习动画原理还是快速实现动画效果都非常有帮助。通过深入研究源码,开发者...

    android的ViewPager和Animation的一些使用

    总结起来,`ViewPager`和`Animation`是Android开发中的强大工具,能够帮助我们构建交互性更强、视觉效果更丰富的应用。通过合理地使用这两个组件,可以提高用户对应用的满意度和留存率。理解并熟练掌握`ViewPager`的...

    android画图总结.pdf

    本文将详细介绍Android画图技术的核心知识点,包括资源的获取、Bitmap、Drawable、Animation以及Paint等方面的内容。 #### 二、资源的获取 在开始画图之前,我们需要了解如何在Android应用中获取资源。Android应用...

    android几种animation

    总结起来,Android 4.x提供了帧动画、属性动画和视图动画三种主要的动画机制,适用于不同的场景和需求。属性动画在功能和性能上都优于视图动画,是现代Android开发中的首选。而帧动画则适合制作简单的循环动画,如...

    android 用Animation中Interpolator实现抛物线等各种曲线

    ### Android Animation 中 Interpolator 实现抛物线等各种曲线 #### 一、前言 在Android开发过程中,动画是提升用户体验的重要手段之一。其中,通过`Animation`类中的`Interpolator`可以实现图片按照预设的数学函数...

    Android_rotate--animation.zip_Android 动画_android_android animati

    总结起来,"Android_rotate--animation.zip"提供的资源着重展示了如何在Android应用中创建平滑的图片旋转动画,同时解决动画过程中的锯齿问题。开发者可以从中学习到如何使用`RotateAnimation`,设置动画参数,以及...

    android中Animation的简单应用实例

    总结,Android的`Animation`类提供了一套丰富的机制,用于创建多种视觉效果。初学者可以通过理解补间动画和帧动画的基本原理,结合实际案例,逐渐掌握Android动画系统。同时,随着对属性动画的深入学习,开发者可以...

    使用Animation-list实现等待加载动画效果

    在Android开发中,动画是提升用户...总结来说,`Animation-list`是Android中的一个强大工具,它使得开发者可以轻松创建帧动画。理解其基本原理和使用方法,能帮助我们为应用增添生动有趣的动态效果,提高用户满意度。

Global site tag (gtag.js) - Google Analytics