2

我使用以下方法在 Android 上调整图像大小。

public Bitmap resize(Bitmap img, int Width, int Height) {

    int width = img.getWidth();     
    int height = img.getHeight();
    int newWidth = (int) Width;
    int newHeight = (int) Height;

    // calculate the scale - in this case = 0.4f
    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;

    // createa matrix for the manipulation
    Matrix matrix = new Matrix();

    // resize the bit map
    matrix.postScale(scaleWidth, scaleHeight);

    // rotate the Bitmap
    //matrix.postRotate(45);

    // recreate the new Bitmap
    Bitmap resizedBitmap = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);

    return resizedBitmap;
} 

它适用于大多数 Android 设备。但在某些设备上,未显示调整大小的图像。我该如何解决这个问题?

4

2 回答 2

1

您可以创建一个缩放位图

Bitmap bitmap = Bitmap.createScaledBitmap(b, width, height, true);

在这里,您可以通过以编程方式读取屏幕尺寸,根据设备的屏幕尺寸为不同设备提供宽度和高度。以下是如何以编程方式读取设备的屏幕尺寸。

于 2013-09-02T15:49:42.660 回答
0

最有可能的是,在“某些设备”上,根据请求的宽度和高度,没有足够的内存来创建调整大小的位图。检查(在调试器中)是否在resizedBitmap图像null“未显示”时出现。

于 2013-09-02T15:02:37.413 回答