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