安卓下动画总结

来源:互联网 发布:log4j ubuntu 编辑:程序博客网 时间:2024/05/18 20:07
  1. 动画效果编程基础--AnimationAndroid      
  2.     
  3. 动画类型      
  4.     
  5. Android的animation由四种类型组成      
  6.     
  7. XML中      
  8. alpha      
  9. 渐变透明度动画效果      
  10. scale      
  11. 渐变尺寸伸缩动画效果      
  12. translate      
  13. 画面转换位置移动动画效果      
  14. rotate      
  15. 画面转移旋转动画效果      
  16.     
  17.     
  18. JavaCode中      
  19. AlphaAnimation      
  20. 渐变透明度动画效果      
  21. ScaleAnimation      
  22. 渐变尺寸伸缩动画效果      
  23. TranslateAnimation      
  24. 画面转换位置移动动画效果      
  25. RotateAnimation      
  26. 画面转移旋转动画效果      
  27.     
  28. Android动画模式      
  29.     
  30. Animation主要有两种动画模式:      
  31.     
  32. 一种是tweened animation(渐变动画)      
  33. XML中      
  34. JavaCode      
  35. alpha      
  36. AlphaAnimation      
  37. scale      
  38. ScaleAnimation      
  39.     
  40.     
  41. 一种是frame by frame(画面转换动画)      
  42. XML中      
  43. JavaCode      
  44. translate      
  45. TranslateAnimation      
  46. rotate      
  47. RotateAnimation      
  48.     
  49.     
  50.     
  51. 如何在XML文件中定义动画      
  52.     
  53. ① 打开Eclipse,新建Android工程      
  54. ② 在res目录中新建anim文件夹      
  55. ③ 在anim目录中新建一个myanim.xml(注意文件名小写)      
  56. ④ 加入XML的动画代码      
  57. <?xml version="1.0" encoding="utf-8"?>      
  58. <set xmlns:android="http://schemas.android.com/apk/res/android">      
  59.   <alpha/>      
  60.   <scale/>      
  61.   <translate/>      
  62.   <rotate/>      
  63. </set>      
  64. 复制代码      
  65.     
  66.     
  67. Android动画解析--XML      
  68.     
  69. <alpha>      
  70. <?xml version="1.0" encoding="utf-8"?>      
  71. <set xmlns:android="http://schemas.android.com/apk/res/android" >      
  72. <alpha      
  73. android:fromAlpha="0.1"      
  74. android:toAlpha="1.0"      
  75. android:duration="3000"      
  76.     
  77. />      
  78. <!-- 透明度控制动画效果 alpha      
  79.         浮点型值:      
  80.             fromAlpha 属性为动画起始时透明度      
  81.             toAlpha   属性为动画结束时透明度      
  82.             说明:      
  83.                 0.0表示完全透明      
  84.                 1.0表示完全不透明      
  85.             以上值取0.0-1.0之间的float数据类型的数字      
  86.              
  87.         长整型值:      
  88.             duration  属性为动画持续时间      
  89.             说明:          
  90.                 时间以毫秒为单位      
  91. -->      
  92. </set>      
  93. 复制代码      
  94.     
  95.     
  96. <scale>      
  97. <?xml version="1.0" encoding="utf-8"?>      
  98. <set xmlns:android="http://schemas.android.com/apk/res/android">      
  99.    <scale       
  100.           android:interpolator=      
  101.                      "@android:anim/accelerate_decelerate_interpolator"      
  102.           android:fromXScale="0.0"      
  103.           android:toXScale="1.4"      
  104.           android:fromYScale="0.0"      
  105.           android:toYScale="1.4"      
  106.           android:pivotX="50%"      
  107.           android:pivotY="50%"      
  108.           android:fillAfter="false"      
  109.           android:startOffset=“700”      
  110.           android:duration="700" />      
  111. </set>      
  112. <!-- 尺寸伸缩动画效果 scale      
  113.        属性:interpolator 指定一个动画的插入器      
  114.         在我试验过程中,使用android.res.anim中的资源时候发现      
  115.         有三种动画插入器:      
  116.             accelerate_decelerate_interpolator  加速-减速 动画插入器      
  117.             accelerate_interpolator        加速-动画插入器      
  118.             decelerate_interpolator        减速- 动画插入器      
  119.         其他的属于特定的动画效果      
  120.       浮点型值:      
  121.               
  122.             fromXScale 属性为动画起始时 X坐标上的伸缩尺寸         
  123.             toXScale   属性为动画结束时 X坐标上的伸缩尺寸          
  124.              
  125.             fromYScale 属性为动画起始时Y坐标上的伸缩尺寸         
  126.             toYScale   属性为动画结束时Y坐标上的伸缩尺寸        
  127.             startOffset  属性为从上次动画停多少时间开始执行下个动画      
  128.              
  129.             说明:      
  130.                  以上四种属性值         
  131.          
  132.                     0.0表示收缩到没有      
  133.                     1.0表示正常无伸缩          
  134.                     值小于1.0表示收缩       
  135.                     值大于1.0表示放大      
  136.              
  137.             pivotX     属性为动画相对于物件的X坐标的开始位置      
  138.             pivotY     属性为动画相对于物件的Y坐标的开始位置      
  139.              
  140.             说明:      
  141.                     以上两个属性值 从0%-100%中取值      
  142.                     50%为物件的X或Y方向坐标上的中点位置      
  143.              
  144.         长整型值:      
  145.             duration  属性为动画持续时间      
  146.             说明:   时间以毫秒为单位      
  147.     
  148.         布尔型值:      
  149.             fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用      
  150. -->      
  151. 复制代码      
  152.     
  153.     
  154. <translate>      
  155.     
  156. <?xml version="1.0" encoding="utf-8"?>      
  157. <set xmlns:android="http://schemas.android.com/apk/res/android">      
  158. <translate      
  159. android:fromXDelta="30"      
  160. android:toXDelta="-80"      
  161. android:fromYDelta="30"      
  162. android:toYDelta="300"      
  163. android:duration="2000"      
  164. />      
  165. <!-- translate 位置转移动画效果      
  166.         整型值:      
  167.             fromXDelta 属性为动画起始时 X坐标上的位置         
  168.             toXDelta   属性为动画结束时 X坐标上的位置      
  169.             fromYDelta 属性为动画起始时 Y坐标上的位置      
  170.             toYDelta   属性为动画结束时 Y坐标上的位置      
  171.             注意:      
  172.                      没有指定fromXType toXType fromYType toYType 时候,      
  173.                      默认是以自己为相对参照物                  
  174.         长整型值:      
  175.             duration  属性为动画持续时间      
  176.             说明:   时间以毫秒为单位      
  177. -->      
  178. </set>      
  179. 复制代码      
  180.     
  181. <rotate>      
  182.     
  183. <?xml version="1.0" encoding="utf-8"?>      
  184. <set xmlns:android="http://schemas.android.com/apk/res/android">      
  185. <rotate      
  186.         android:interpolator="@android:anim/accelerate_decelerate_interpolator"     
  187.         android:fromDegrees="0"      
  188.         android:toDegrees="+350"              
  189.         android:pivotX="50%"      
  190.         android:pivotY="50%"          
  191.         android:duration="3000" />       
  192. <!-- rotate 旋转动画效果      
  193.        属性:interpolator 指定一个动画的插入器      
  194.              在我试验过程中,使用android.res.anim中的资源时候发现      
  195.              有三种动画插入器:      
  196.                 accelerate_decelerate_interpolator   加速-减速 动画插入器      
  197.                 accelerate_interpolator               加速-动画插入器      
  198.                 decelerate_interpolator               减速- 动画插入器      
  199.              其他的属于特定的动画效果      
  200.                                 
  201.        浮点数型值:      
  202.             fromDegrees 属性为动画起始时物件的角度         
  203.             toDegrees   属性为动画结束时物件旋转的角度 可以大于360度        
  204.              
  205.             说明:      
  206.                      当角度为负数——表示逆时针旋转      
  207.                      当角度为正数——表示顺时针旋转                   
  208.                      (负数from——to正数:顺时针旋转)        
  209.                      (负数from——to负数:逆时针旋转)      
  210.                      (正数from——to正数:顺时针旋转)      
  211.                      (正数from——to负数:逆时针旋转)            
  212.     
  213.             pivotX     属性为动画相对于物件的X坐标的开始位置      
  214.             pivotY     属性为动画相对于物件的Y坐标的开始位置      
  215.                      
  216.             说明:        以上两个属性值 从0%-100%中取值      
  217.                          50%为物件的X或Y方向坐标上的中点位置      
  218.     
  219.         长整型值:      
  220.             duration  属性为动画持续时间      
  221.             说明:       时间以毫秒为单位      
  222. -->      
  223. </set>      
  224. 复制代码      
  225.     
  226.     
  227. 如何使用XML中的动画效果      
  228. public static Animation loadAnimation (Context context, int id)      
  229. //第一个参数Context为程序的上下文         
  230. //第二个参数id为动画XML文件的引用      
  231. //例子:      
  232. myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);      
  233. //使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件      
  234. 复制代码      
  235.     
  236.     
  237. 如何在Java代码中定义动画      
  238. //在代码中定义 动画实例对象      
  239. private Animation myAnimation_Alpha;      
  240. private Animation myAnimation_Scale;      
  241. private Animation myAnimation_Translate;      
  242. private Animation myAnimation_Rotate;      
  243.          
  244.     //根据各自的构造方法来初始化一个实例对象      
  245. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);      
  246.     
  247. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,      
  248.              Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);     
  249.     
  250. myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);      
  251.     
  252. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,      
  253.                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);     
  254. 复制代码      
  255.     
  256.     
  257. Android动画解析--JavaCode      
  258.     
  259.     
  260. AlphaAnimation      
  261.     
  262. ① AlphaAnimation类对象定义      
  263. private AlphaAnimation myAnimation_Alpha;      
  264. 复制代码      
  265. ② AlphaAnimation类对象构造      
  266. AlphaAnimation(float fromAlpha, float toAlpha)      
  267. //第一个参数fromAlpha为 动画开始时候透明度      
  268. //第二个参数toAlpha为 动画结束时候透明度      
  269. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);      
  270. //说明:      
  271. //                0.0表示完全透明      
  272. //                1.0表示完全不透明      
  273. 复制代码      
  274. ③ 设置动画持续时间      
  275. myAnimation_Alpha.setDuration(5000);      
  276. //设置时间持续时间为 5000毫秒      
  277. 复制代码      
  278.     
  279.     
  280.     
  281. ScaleAnimation      
  282.     
  283. ① ScaleAnimation类对象定义      
  284. private AlphaAnimation myAnimation_Alpha;      
  285. 复制代码      
  286. ② ScaleAnimation类对象构造      
  287. ScaleAnimation(float fromX, float toX, float fromY, float toY,      
  288.            int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)     
  289. //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸         
  290. //第二个参数toX为动画结束时 X坐标上的伸缩尺寸          
  291. //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸         
  292. //第四个参数toY为动画结束时Y坐标上的伸缩尺寸       
  293. /*说明:     
  294.                     以上四种属性值        
  295.                     0.0表示收缩到没有     
  296.                     1.0表示正常无伸缩         
  297.                     值小于1.0表示收缩      
  298.                     值大于1.0表示放大     
  299. */      
  300. //第五个参数pivotXType为动画在X轴相对于物件位置类型       
  301. //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置      
  302. //第七个参数pivotXType为动画在Y轴相对于物件位置类型        
  303. //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置      
  304. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,      
  305.              Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);     
  306. 复制代码      
  307. ③ 设置动画持续时间      
  308. myAnimation_Scale.setDuration(700);      
  309. //设置时间持续时间为 700毫秒      
  310. 复制代码      
  311.     
  312.     
  313.     
  314. TranslateAnimation      
  315.     
  316.     
  317. ① TranslateAnimation类对象定义      
  318. private AlphaAnimation myAnimation_Alpha;      
  319. 复制代码      
  320. ② TranslateAnimation类对象构造      
  321. TranslateAnimation(float fromXDelta, float toXDelta,      
  322.                        float fromYDelta, float toYDelta)      
  323. //第一个参数fromXDelta为动画起始时 X坐标上的移动位置         
  324. //第二个参数toXDelta为动画结束时 X坐标上的移动位置           
  325. //第三个参数fromYDelta为动画起始时Y坐标上的移动位置          
  326. //第四个参数toYDelta为动画结束时Y坐标上的移动位置      
  327. 复制代码      
  328. ③ 设置动画持续时间      
  329. myAnimation_Translate.setDuration(2000);      
  330. //设置时间持续时间为 2000毫秒      
  331. 复制代码      
  332.     
  333.     
  334. RotateAnimation      
  335. ① RotateAnimation类对象定义      
  336. private AlphaAnimation myAnimation_Alpha;      
  337. 复制代码      
  338.     
  339. ② RotateAnimation类对象构造      
  340. RotateAnimation(float fromDegrees, float toDegrees,      
  341.             int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)     
  342. //第一个参数fromDegrees为动画起始时的旋转角度         
  343. //第二个参数toDegrees为动画旋转到的角度        
  344. //第三个参数pivotXType为动画在X轴相对于物件位置类型       
  345. //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置      
  346. //第五个参数pivotXType为动画在Y轴相对于物件位置类型        
  347. //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置      
  348. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,      
  349.                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);     
  350. 复制代码      
  351.     
  352. ③ 设置动画持续时间      
  353. myAnimation_Rotate.setDuration(3000);      
  354. //设置时间持续时间为 3000毫秒      
  355. 复制代码      
  356.     
  357.     
  358. 如何使用Java代码中的动画效果      
  359.     
  360. 使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果 
0 0
原创粉丝点击