android.view.animation之Transformation

定义

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的阵列,目的是为了保存转换过程的属性。该矩阵示意图如下:

image.png

其中MSCALE_X和MSCALE_Y用于保存缩放程度,MSKEW_X和MSKEW_Y用于保存错切和旋转程度,MTRANS_X和MTRANS_Y用于保存位移大小,MPERSP_0,MPERSP_1和MPERSP_2则是用于透视变换,比如做到立体旋转。

浮点数变量alpha

这个参数自然是保存View的透明程度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容