2011-06-07 113 views
3

我有一個矩形形狀的位圖,我需要將其順時針或逆時針旋轉90度。在Android中旋轉矩形位圖

我可以使用此代碼做旋轉:

Matrix matrix = new Matrix(); 
    matrix.setRotate(90, originalBitmap.getWidth()/2, originalBitmap.getHeight()/2); 
    return Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true); 

然而,該代碼使用舊的值的高度/寬度旋轉圖像「就地」。由此產生的圖像看起來拉長和醜陋。

有沒有什麼好的方法將圖像旋轉90度到新的高度/寬度?可能的解決辦法之一是先修改原始位圖的尺寸?

感謝

+0

您是否找到了解決方案? – 2012-05-28 16:17:29

回答

0

你不使用舊的價值,同時創造新的位圖?只需將它們替換爲最後一行:

return Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth()/2, originalBitmap.getHeight()/2, matrix, true); 
+0

如果我用這樣的參數創建新的位圖: newWidth = originalHeight; newHeight = originalWidth; 有一個異常告訴我,位圖的高度不能小於原始值。 – Anton 2011-06-07 16:31:24