標籤:android io for 工作 時間 sp on c app
1.動畫運行模式
獨行模式
中斷模式
2.Animation類
每個動畫都重載了父類的applyTransformation方法這個方法的主要作用是把一些屬性群組裝成一個Transformation類,這個方法會被父類的getTransformation方法調用。另外每個動畫還有個initialize方法,完成初始化工作,動畫開始前的一些準備工作。
3.Interpolator類
定義動畫執行過程一些加速度減速度,為了我們後面Transformation來服務的。
4.Transformation類
Transformation記錄了仿射矩陣Matrix,動畫每觸發一次,會對原來的矩陣做一次運算,View的Bitmap與這個矩陣相乘就可以實現相應的操作(旋轉、平移、縮放等)。
Transformation類封裝了矩陣和alpha值,它有兩個重要的成員,一是mMatrix,二是mAlpha(控制透明度)。
5.View中實現動畫的過程
圖形變換通過矩陣實現。圖形變換是圖形學中基本知識。簡單來說就是,每種變換都是一次矩陣運算。在Android中,Canvas類包含當前矩陣,當前調用Canvas.drawBitmap(bm,x,y,Paint)繪製時,android會先把bmp做一次矩陣運算,然後將運算結果顯示在Canvas上。這樣編程人員只需不斷修改Canvas的矩陣並重新整理螢幕,View裡對象就會不停的做圖形變換,動畫就形成了。
View建立動畫對象,設定動畫屬性,調用invalidate重新整理螢幕,啟動動畫;
invalidate方法觸發了onDraw函數;
在onDraw函數中:
調用動畫的getTransformation方法,得到目前時間點的矩陣
將該矩陣設定成Canvas的當前矩陣
調用canvas的drawBitmap方法,繪製螢幕。
判斷getTransformation的傳回值,若為真,調用invalidate方法,重新整理螢幕進入下一幀;若為假,說明動畫完成。
Android動畫的實現原理 .