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

当在画布上绘制一张位图时,可以使用该Matrix对象。

canvas.drawBitmap(bmp, matrix, paint);

这将代替之前示例中使用的drawBitmap方法。

为了使得Matrix对象以某种方式更改图像,可以用不同的值替换任何一个现有的数字。如果将第一个数字从1改为.5,那么将在x轴上将图像压缩50%,如图3-5所示。第一个数字会作用于源图像的x坐标,从而影响结果图像的x坐标。

.5 0 0

0 1 0

0 0 1

Matrix matrix = new Matrix();

matrix.setValues(new float[] {

     .5f, 0, 0,

     0, 1, 0,

     0, 0, 1 

});

canvas.drawBitmap(bmp, matrix, paint);

如果改变矩阵,使x坐标也受源图像的y坐标影响,那么可以修改第二个数字。结果如图3-6所示。

Matrix matrix = new Matrix();

matrix.setValues(new float[] {

     1, .5f, 0,

     0, 1, 0,

     0, 0, 1 

});

canvas.drawBitmap(bmp, matrix, paint);

读书导航