當(dāng)在畫布上繪制一張位圖時(shí),可以使用該Matrix對(duì)象。
canvas.drawBitmap(bmp, matrix, paint);
這將代替之前示例中使用的drawBitmap方法。
為了使得Matrix對(duì)象以某種方式更改圖像,可以用不同的值替換任何一個(gè)現(xiàn)有的數(shù)字。如果將第一個(gè)數(shù)字從1改為.5,那么將在x軸上將圖像壓縮50%,如圖3-5所示。第一個(gè)數(shù)字會(huì)作用于源圖像的x坐標(biāo),從而影響結(jié)果圖像的x坐標(biāo)。
.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坐標(biāo)也受源圖像的y坐標(biāo)影響,那么可以修改第二個(gè)數(shù)字。結(jié)果如圖3-6所示。
Matrix matrix = new Matrix();
matrix.setValues(new float[] {
1, .5f, 0,
0, 1, 0,
0, 0, 1
});
canvas.drawBitmap(bmp, matrix, paint);