在Android的FrameWork中,為我們提供三種動畫的實現方式:逐幀(Frame)動畫、視圖動畫(View Animation)和屬性動畫(Property Animation)。由於,這三種動畫的實現方式和針對面不一樣,應用的范圍也有所區別,因此我們需要根據具體的需求來選擇正確動畫類型。
根據SDK中的描述,這三者的功能強大程度為:逐幀動畫<視圖動畫<屬性動畫。
一、逐幀動畫:
該動畫的方式就是將動畫的過程的每一張靜態圖片都收集起來,然後依次顯示這些圖片,利用人眼的“視覺停留”的原理,給用戶產生動畫的效果。該方式雖然笨拙,但是也很有用,例如在浏覽圖片的時候,就可以使用這種方式實現逐幀浏覽了。
二、視圖動畫:
也稱為補間(Tween)動畫,根據這兩個定義可以看出該動畫方式的一些特征:
1)該動畫方式只是針對於View對象,例如ImageView、Button等;
2)實現該動畫時,只需要給出兩個關鍵幀的相關屬性,Android會給你生給定成時間段內的兩關鍵幀的動畫漸變過程。
由於視圖動畫在Android中是一個older system,所以還不能對所有的效果進行支持,目前只支持:
1)透明度變化的動畫(AlphaAnimation);
2)大小縮放的動畫(ScaleAnimation);
3)位置變化的動畫(TranslateAnimation);
4)旋轉動畫(RotateAnimation)。
三、屬性動畫:
為了彌補視圖動畫的不足,Android在3.0中引入了屬性動畫。和視圖動畫專注與視圖效果不同,它更專注於對象的屬性的變化,通過改變對象的屬性而實現動畫,不論該對象是否可見。例如:你使用視圖動畫將一個Button放大一倍,在界面上的效果可以實現,但是該Button的觸摸響應區域還是和原來的一樣,也就是說,視圖動畫並不是真正的將該Button放大一倍。