基本的图像缩放和旋转(4)

Matrix matrix = new Matrix();

matrix.setRotate(15);

canvas.drawBitmap(bmp, matrix, paint);

另外,也可以使用旋转的角度及围绕的旋转点作为参数调用setRotate方法。选择图像的中心点作为旋转点所产生的结果可能更符合我们的需要,如图3-9所示。

matrix.setRotate(15,bmp.getWidth()/2,bmp.getHeight()/2);

2. 缩放

Matrix类中另一个有用的方法是setScale方法。它采用两个浮点数作为参数,分别表示在每个轴上所产生的缩放量。第一个参数是x轴的缩放比例,而第二个参数是y轴的缩放比例。图3-10显示了下列setScale方法调用的结果。

matrix.setScale(1.5f,1);

Matrix类中最有用的方法之一是setTranslate方法。平移意味着在x轴和y轴上简单地移动图像。setTranslate方法采用两个浮点数作为参数,表示在每个轴上移动的数量。第一个参数是图像将在x轴上移动的数量,而第二个参数是图像将在y轴上移动的数量。在x轴上使用正数进行平移将向右移动图像,而使用负数将向左移动图像。在y轴上使用正数进行平移将向下移动图像,而使用负数将向上移动图像。

setTranslate(1.5f,-10);.

4. 之前和之后的版本

当然,以上这些方法仅是冰山一角。还有几个方法可能会证明有用。前面介绍的方法也都有之前和之后的版本,这使得我们能够每次按顺序完成一个以上的转换。例如,可以先执行preScale,然后执行setRotate或setScale,最后执行postRotate。取决于执行的操作,更改它们发生的顺序会产生具有巨大差异的结果。图3-11显示了下列两个方法调用的结果。

读书导航