2017-12-27 342 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等)