Matrix matrix = new Matrix();
matrix.setRotate(15);
canvas.drawBitmap(bmp, matrix, paint);
另外,也可以使用旋轉(zhuǎn)的角度及圍繞的旋轉(zhuǎn)點(diǎn)作為參數(shù)調(diào)用setRotate方法。選擇圖像的中心點(diǎn)作為旋轉(zhuǎn)點(diǎn)所產(chǎn)生的結(jié)果可能更符合我們的需要,如圖3-9所示。
matrix.setRotate(15,bmp.getWidth()/2,bmp.getHeight()/2);
2. 縮放
Matrix類中另一個(gè)有用的方法是setScale方法。它采用兩個(gè)浮點(diǎn)數(shù)作為參數(shù),分別表示在每個(gè)軸上所產(chǎn)生的縮放量。第一個(gè)參數(shù)是x軸的縮放比例,而第二個(gè)參數(shù)是y軸的縮放比例。圖3-10顯示了下列setScale方法調(diào)用的結(jié)果。
matrix.setScale(1.5f,1);
Matrix類中最有用的方法之一是setTranslate方法。平移意味著在x軸和y軸上簡(jiǎn)單地移動(dòng)圖像。setTranslate方法采用兩個(gè)浮點(diǎn)數(shù)作為參數(shù),表示在每個(gè)軸上移動(dòng)的數(shù)量。第一個(gè)參數(shù)是圖像將在x軸上移動(dòng)的數(shù)量,而第二個(gè)參數(shù)是圖像將在y軸上移動(dòng)的數(shù)量。在x軸上使用正數(shù)進(jìn)行平移將向右移動(dòng)圖像,而使用負(fù)數(shù)將向左移動(dòng)圖像。在y軸上使用正數(shù)進(jìn)行平移將向下移動(dòng)圖像,而使用負(fù)數(shù)將向上移動(dòng)圖像。
setTranslate(1.5f,-10);.
4. 之前和之后的版本
當(dāng)然,以上這些方法僅是冰山一角。還有幾個(gè)方法可能會(huì)證明有用。前面介紹的方法也都有之前和之后的版本,這使得我們能夠每次按順序完成一個(gè)以上的轉(zhuǎn)換。例如,可以先執(zhí)行preScale,然后執(zhí)行setRotate或setScale,最后執(zhí)行postRotate。取決于執(zhí)行的操作,更改它們發(fā)生的順序會(huì)產(chǎn)生具有巨大差異的結(jié)果。圖3-11顯示了下列兩個(gè)方法調(diào)用的結(jié)果。