2011-12-01 210 views
2

如何繞中心點旋轉圖像?這使其旋轉,而且移動它:圍繞中心旋轉圖像

Matrix mat = new Matrix(); 
mat.postRotate(45); 
Bitmap bMapRotate = Bitmap.createBitmap(dialBM, 0, 0, dialBM.getWidth(),dialBM.getHeight(), mat, true); 
dial.setImageBitmap(bMapRotate); 

我檢查了其他的例子在這個網站,但他們要麼無法正常工作或使用的畫布,我不希望使用畫布。

回答

8

postRotate的第二個和第三個參數是x和y軸心點。

mat.postRotate(45, dialBM.getWidth()/2, dialBM.getHeight()/2); 
+0

哦,那確實比較簡單,雖然我猜它在內部確實是我的建議。 – zmbq

+1

這不起作用。我的錶盤旋轉,但不在其中心。 – panthro

+0

將第二個和第三個參數更改爲您希望它旋轉的位置。 ('postRotate(degrees,pivotX,pivotY)') – Paramount

0

可能是因爲您的矩陣圍繞(0,0)旋轉,而不是位圖中間。您應該聲明兩個附加矩陣 - 一個用於將位圖中心移動到(0,0)(通過-getWidth()/ 2,-getHeight(2)移位),另一個用於將位圖中心移回(0,0)。乘以三個矩陣,然後結果。