在Android中做圖像鏡像有很多方法,今天算是學習了!
兩種方法如下:
[java]
- //方法一
- Matrix matrix = new Matrix();
- matrix.postScale(leftOrRight, 1, bmpW/2, bmpH/2);//前兩個是xy變換,後兩個是對稱軸中心點
- matrix.postTranslate(x, y);
- canvas.drawBitmap(bmpLuffy[0], matrix, paint);
- //方法二
- // canvas.save();
- // canvas.scale(-1, 1, x + bmpLuffy[0].getWidth() / 2, y + bmpLuffy[0].getHeight() / 2);
- // canvas.drawBitmap(bmpLuffy[0], x, y, paint);
- // canvas.restore();
方法一,使用矩陣的方式(3x3)矩陣:
1、先使用postScale的方式將圖片以點(bmpW/2,bmpH/2)為中心,以x=bmpW/2為對稱軸翻轉;
2、使用postTranslate,將圖片移到(x,y)坐標
方法二,畫布翻轉(略)
注意如下問題:
對於其中的bmpW和bmpH是指所用圖片的寬高,需要使用圖片bmp.getWidth()和bmp.getHeight()獲取,
不能使用PC上看到的大小,否則可能會出現錯位!