正篇
溯源
首先,我们找到该类的源代码:
网络异常,图片无法展示
|
通过这个简短的注释说明我们了解到,Matrix是一个3 x 3用于转换坐标的矩阵。
网络异常,图片无法展示
|
使用方法
它对图片的处理可以分为以下四个基本类型:
Translate——平移变换
@Override public boolean postTranslate(float dx, float dy) { oops(); return false; }
该方法在x轴和y轴上简单地移动图像,采用两个浮点数作为参数,表示在每个轴上移动的数量。第一个参数是图像将在x轴上移动的数量,而第二个参数是图像将在y轴上移动的数量。在x轴上使用正数进行平移将向右移动图像,而使用负数将向左移动图像。在y轴上使用正数进行平移将向下移动图像,而使用负数将向上移动图像。
Scale——缩放变换
@Override public boolean postScale(float sx, float sy) { oops(); return false; }
该方法采用两个浮点数作为参数,分别表示在每个轴上所产生的缩放量。第一个参数是x轴的缩放比例,而第二个参数是y轴的缩放比例。
Rotate——旋转变换
@Override public boolean postRotate(float degrees, float px, float py) { oops(); return false; } @Override public boolean postRotate(float degrees) { oops(); return false; }
该方法采用一个浮点数表示旋转的角度。围绕默认点(0,0),正数将顺时针旋转图像,而负数将逆时针旋转图像,其中默认点是图像的左上角。
Skew——错切变换
@Override public boolean postSkew(float kx, float ky, float px, float py) { oops(); return false; } @Override public boolean postSkew(float kx, float ky) { oops(); return false; }
错切变换,在数学上又称为Shear mapping(可叫做“剪切变换”)或是Transvection(缩并),它是一种比较特殊的线性变换。错切变换的效果就是让所有点的x坐标(或者y坐标)保持不变,而对应的y坐标(或者x坐标)则按比例发生平移,且平移的大小和该点到x轴(或y轴)的垂直距离成正比。它是属于等面积变换,即一个形状在错切变换的前后,其面积是相等的。
具体说明
该API对于每一种变换都提供了三种操作方式:
set(用于设置Matrix中的值)
post(后乘,根据矩阵的原理,相当于左乘)
pre(先乘,相当于矩阵中的右乘)
注:默认时,这四种变换都是围绕(0,0)点变换的,也可以自定义围绕的中心点,通常围绕中心点。
小结
希望可以早日完成app!