Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 中級開發 >> Android 動畫筆記——Animation (1)

Android 動畫筆記——Animation (1)

編輯:中級開發

動畫效果 編程基礎--Animation android

動畫類型

android的 animation 由四種類型組成

XML 中

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

 

Java Code中

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>
復制代碼


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>
復制代碼


<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.-->
復制代碼


<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>
復制代碼

<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>
復制代碼


如何使用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文件
復制代碼


如何在Java 代碼中定義動畫

1.//在代碼中定義 動畫實例 對象 
2.private Animation myAnimation_Alpha; 
3.private Animation myAnimation_Scale; 
4.private Animation myAnimation_Translate; 
5.private Animation myAnimation_Rotate; 
6.    
7.    //根據各自的構造方法來初始化一個實例對象 
8.myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f); 
9.
10.myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, 
11.             Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
12.
13.myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f); 
14.
15.myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f, 
16.               Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
復制代碼


android動畫解析 --JavaCode


AlphaAnimation

① 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.//                0.0表示完全透明 
7.//                1.0表示完全不透明
復制代碼 
③ 設置動畫持續時間

1.myAnimation_Alpha.setDuration(5000); 
2.//設置時間持續時間為 5000毫秒
復制代碼

 

ScaleAnimation

① ScaleAnimation類對象定義

1.private AlphaAnimation myAnimation_Alpha;
復制代碼 
② ScaleAnimation類對象構造

1.ScaleAnimation(float fromX, float toX, float fromY, float toY, 
2.           int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 
3.//第一個參數fromX為動畫起始時 X坐標上的伸縮尺寸    
4.//第二個參數toX為動畫結束時 X坐標上的伸縮尺寸      
5.//第三個參數fromY為動畫起始時Y坐標上的伸縮尺寸    
6.//第四個參數toY為動畫結束時Y坐標上的伸縮尺寸   
7./*說明: 
8.                    以上四種屬性值    
9.                    0.0表示收縮到沒有 
10.                    1.0表示正常無伸縮      
11.                    值小於1.0表示收縮   
12.                    值大於1.0表示放大 
13.*/ 
14.//第五個參數pivotXType為動畫在X軸相對於物件位置類型   
15.//第六個參數pivotXValue為動畫相對於物件的X坐標的開始位置 
16.//第七個參數pivotXType為動畫在Y軸相對於物件位置類型    
17.//第八個參數pivotYValue為動畫相對於物件的Y坐標的開始位置 
18.myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, 
19.             Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
復制代碼 
③ 設置動畫持續時間

1.myAnimation_Scale.setDuration(700); 
2.//設置時間持續時間為 700毫秒
復制代碼

 

TranslateAnimation


① TranslateAnimation類對象定義

1.private AlphaAnimation myAnimation_Alpha;
復制代碼 
② TranslateAnimation類對象構造

1.TranslateAnimation(float fromXDelta, float toXDelta, 
2.                       float fromYDelta, float toYDelta) 
3.//第一個參數fromXDelta為動畫起始時 X坐標上的移動位置    
4.//第二個參數toXDelta為動畫結束時 X坐標上的移動位置       
5.//第三個參數fromYDelta為動畫起始時Y坐標上的移動位置      
6.//第四個參數toYDelta為動畫結束時Y坐標上的移動位置 
復制代碼 
③ 設置動畫持續時間

1.myAnimation_Translate.setDuration(2000); 
2.//設置時間持續時間為 2000毫秒
復制代碼


RotateAnimation 
①  RotateAnimation類對象定義

1.private AlphaAnimation myAnimation_Alpha;
復制代碼

②  RotateAnimation類對象構造

1.RotateAnimation(float fromDegrees, float toDegrees, 
2.            int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 
3.//第一個參數fromDegrees為動畫起始時的旋轉角度    
4.//第二個參數toDegrees為動畫旋轉到的角度    
5.//第三個參數pivotXType為動畫在X軸相對於物件位置類型   
6.//第四個參數pivotXValue為動畫相對於物件的X坐標的開始位置 
7.//第五個參數pivotXType為動畫在Y軸相對於物件位置類型    
8.//第六個參數pivotYValue為動畫相對於物件的Y坐標的開始位置 
9.myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f, 
10.               Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
復制代碼

③  設置動畫持續時間

1.myAnimation_Rotate.setDuration(3000); 
2.//設置時間持續時間為 3000毫秒
復制代碼


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.Net/xxxx1243/archive/2010/08/23/5831974.ASPx

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved