android的動畫

學習android中,看了這個博主的文章挺好。爲了更好的學習作爲記錄。

引用地址:http://blog.csdn.net/xyz_lmn/article/details/6906783


 Android框架本身就使用了大量的動畫效果,比如Activity切換的動畫效果,Dialog彈出和關閉時的漸變動畫效果以及Toast顯示信息時的淡入淡出效果等等。Android系統框架爲我們提供了一些動畫類及其工具類,所以在Andorid應用中使用動畫效果非常簡單。Android中可以在xml中定義Animation,也可以在java code中定義。

    Android中動畫的實現分兩種方式,一種方式是補間動畫 Tween Animation,就是說你定義一個開始和結束,中間的部分由android自身實現。另一種叫逐幀動畫 Frame Animation,就是說一幀一幀的連起來播放就變成了動畫。

一、Tween Animation

xml中實現:

alpha漸變透明度動畫效果
scale漸變尺寸伸縮動畫效果
translate畫面轉換位置移動動畫效果
rotate畫面轉移旋轉動畫效果


JavaCode

AlphaAnimation漸變透明度動畫效果
ScaleAnimation漸變尺寸伸縮動畫效果
TranslateAnimation畫面轉換位置移動動畫效果
RotateAnimation畫面轉移旋轉動畫效果

    使用XML文件定義Tween Animation時XML文件的根節點可以是<alpha>、<scale> <translate>、<rotate>或者是把它們都放入<set>節點中。如下:


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>  


Java Code實現如下:

AlphaAnimation:

[java]

  1. AnimationSet animationSet = new AnimationSet(true);//創建一個AnimationSet對象    

  2. AlphaAnimation alphaAnimation = new AlphaAnimation(10);//創建一個AlphaAnimation對象             

  3. alphaAnimation.setDuration(1000);//設置動畫執行的時間(單位:毫秒)         

  4. animationSet.addAnimation(alphaAnimation);//將AlphaAnimation對象添加到AnimationSet當中          

  5. view.startAnimation(animationSet);//使用view的startAnimation方法開始執行動畫      


RotateAnimation :

[java]

  1. AnimationSet animationSet = new AnimationSet(true);  

  2. /**  

  3. * 前兩個參數定義旋轉的起始和結束的度數,後兩個參數定義圓心的位置  

  4. */  

  5. RotateAnimation rotateAnimation = new RotateAnimation(0360,      

  6.                     Animation.RELATIVE_TO_PARENT, 1f,      

  7.                     Animation.RELATIVE_TO_PARENT, 0f);      

  8.             rotateAnimation.setDuration(5000);      

  9.             animationSet.addAnimation(rotateAnimation);      

  10.             imageView.startAnimation(animationSet);   


TranslateAnimation:

[java]

    AnimationSet animationSet = new AnimationSet(true);      

  1. /**  

  2.              * x和y軸的起始和結束位置  

  3. */  

  4. TranslateAnimation translateAnimation = new TranslateAnimation      

  5.             (      

  6.                     Animation.RELATIVE_TO_SELF, 0f,       

  7.                     Animation.RELATIVE_TO_SELF,0.5f,       

  8.                     Animation.RELATIVE_TO_SELF, 0f,      

  9.                     Animation.RELATIVE_TO_SELF, 1.0f      

  10.             );      

  11.             translateAnimation.setDuration(1000);      

  12.             animationSet.addAnimation(translateAnimation);      

  13. view.startAnimation(animationSet);    


ScaleAnimation:

[java] 

  1. AnimationSet animationSet = new AnimationSet(true);      

  2. /**  

  3.              * 圍繞一個點伸縮  

  4. */  

  5. ScaleAnimation scaleAnimation = new ScaleAnimation(10.1f, 1,      

  6.                     0.1f, Animation.RELATIVE_TO_SELF, 0.5f,      

  7.                     Animation.RELATIVE_TO_SELF, 0.5f);      

  8.             animationSet.addAnimation(scaleAnimation);      

  9.             animationSet.setStartOffset(1000);      

  10.             animationSet.setFillAfter(true);      

  11.             animationSet.setFillBefore(false);      

  12.             animationSet.setDuration(2000);      

  13. view.startAnimation(animationSet);   


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章