Android,围绕自我中心旋转位图而不缩放它

时间:2017-12-27 12:35:36

标签: android canvas bitmap android-canvas android-bitmap

当我围绕它旋转位图时,位图图像的大小发生了变化,旋转显示出来。

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;
    }

每次调用画布时,都会添加到位图的宽度和高度,然后摇动旋转。 如何在没有抖动位图的情况下平滑旋转?

1 个答案:

答案 0 :(得分: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等)