定义
API文档里的定义如下:
Defines the transformation to be applied at one point in time of an Animation.
意思是说,定义了View在动画运行的期间每个时刻的状态。定义非常简单,但是理解了Transformation,对理解整个android动画的原理至关重要。
Transformation类的要点
既然Transformation可以保存View的属性状态,那它是如何做到的呢?
从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则是用于透视变换,比如做到立体旋转。
浮点数变量alpha
这个参数自然是保存View的透明程度。