定義
API文檔里的定義如下:
Defines the transformation to be applied at one point in time of an Animation.
意思是說丸卷,定義了View在動畫運行的期間每個時刻的狀態(tài)。定義非常簡單询刹,但是理解了Transformation谜嫉,對理解整個android動畫的原理至關重要。
Transformation類的要點
既然Transformation可以保存View的屬性狀態(tài)凹联,那它是如何做到的呢沐兰?
從Transformation的源碼里,我們可以看到以下兩個變量:
protected Matrix mMatrix;
protected float mAlpha;
Transformation便是通過以上兩個變量保存的蔽挠。
對象變量matrix
Matrix的意思矩陣住闯。API文檔定義如下:
The Matrix class holds a 3x3 matrix for transforming coordinates.
意思是說,該矩陣為一個3*3的陣列澳淑,目的是為了保存轉換過程的屬性比原。該矩陣示意圖如下:
其中MSCALE_X和MSCALE_Y用于保存縮放程度,MSKEW_X和MSKEW_Y用于保存錯切和旋轉程度杠巡,MTRANS_X和MTRANS_Y用于保存位移大小量窘,MPERSP_0,MPERSP_1和MPERSP_2則是用于透視變換,比如做到立體旋轉氢拥。
浮點數(shù)變量alpha
這個參數(shù)自然是保存View的透明程度蚌铜。