進入android3.0(API 11)後,android的動畫分爲3種android
一、Property Animation
算法
二、View Animation源碼分析
三、Drawable Animation動畫
View Animation(Tween Animation):補間動畫,給出兩個關鍵的幀,經過一些算法將給定屬性值在給定時間內的兩個關鍵幀漸變。View Animation只能應用於View對象,並且只支持一部分屬性如:alpha、scale、translate、rotate。並且View Aimation只改變View對象繪製的位置,沒有改變View對象自己。例如一個按鈕作平移,在移動過程當中點擊按鈕是不會有點擊事件的,只有點擊按鈕的原始區域纔有點擊事件。spa
Drawable Animation(Frame Animation):幀動畫。經過一系列圖片依次顯示來達到動畫效果。
對象
上面兩種動畫都是3.0以前就已經引進的,而Property Animation 是3.0以後才引進的。他有幾個特色:
事件
一、Property Animation 表示的是一個值在一段時間內變化,能夠描述任何對象的行爲,而不只是View對象圖片
二、經過Property Animation做用view對象,能夠改變view的實際屬性,而不只是繪畫位置。這個能夠在後面的源碼分析中找到緣由。get
經過 Property Animation能夠定義一個動畫的如下特性:
源碼
Duration:動畫的持續時間,默認值是300ms
Time interprolation:時間插值,定義隨着時間的變化,屬性值是如何變換的。
Repeat count and behavior:能夠定義一個動畫是否重複進行,重複次數,也能夠指定動畫倒着回放。
Animator sets:能夠定義一組動畫,它們一塊兒播放或順序播放,或者指定的延遲後播放
Frame refresh delay:指定多久刷新一個動畫的幀, 默認爲10ms
只要這個對象的屬性有get/set方法,Property Animation 就能根據動畫效果來改變他的值。3.0以後View引入的一些新的屬性並設置的get/set方法:
一、translationX和translationY:這兩個屬性控制了view所處的位置,它們的值由layout容器設置,是相對於座標原點(0,0左上角)的一個偏移量。
二、rotation、rotationX和rotationY:控制View繞着軸點(pivotX、pivotY)旋轉。
三、scaleX和scaleY:控制View基於pivotX和pivotY的縮放。
四、pivotX和pivotY:旋轉的軸點和縮放的基準點,默認是View的中心點。
五、x和y:描述了view在其父容器中的最終位置,是左上角座標和偏移量(translationX,translationY)的和。
六、aplha:透明度,1是徹底不透明,0是徹底透明。
下一章將具體介紹propety Animation的使用。