2017-12-27 345 views
0

當我圍繞它旋轉位圖時,位圖圖像的大小發生變化,並且旋轉以搖動顯示。Android,在自定義中心周圍旋轉位圖而不會縮放它

public static Bitmap RotateBitmap(Bitmap source, int width, float angle) { 
     Matrix matrix = new Matrix(); 
     int px = width/2; 
     matrix.postRotate(angle, px, px); 
     Bitmap bitmap = Bitmap.createBitmap(source, 0, 0, width, width, matrix, true); 
     return bitmap; 
    } 

隨着每次調用在畫布中繪製它,一些添加到位圖的寬度和高度,並隨着晃動旋轉。 如何平滑旋轉而不會晃動位圖?

回答

0

它正在調整大小,因爲你正在傳遞它的一半寬度。使用這個:

public static Bitmap RotateBitmap(Bitmap source, float angle) { 
    Matrix matrix = new Matrix(); 
    matrix.postRotate(angle); 
    Bitmap bitmap = Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); 
    return bitmap; 
} 

至於搖晃,你必須在另一個線程上調用它。 (AsyncTask等)