Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改位图的大小?_Java_Android_Image_Bitmap_Camera - Fatal编程技术网

Java 如何更改位图的大小?

Java 如何更改位图的大小?,java,android,image,bitmap,camera,Java,Android,Image,Bitmap,Camera,我制作了一张图片并将其保存在“ArrayList位图”之前,在将它们保存到卡之前,我将它们放入“GridView”中。但由于大型“GridView”中的图片“位图”无法正确显示。我在存钱之前已经试过了 bitmap.setHeight(); bitmap.setWidth(); 但Android Studio强调并表示我不能使用这些方法。如果我理解正确,这与API有关。 建议如何制作50×50像素的图片?只需修改宽度和高度,即可更改位图的大小。就这样, public Bitmap getRes

我制作了一张图片并将其保存在“ArrayList位图”之前,在将它们保存到卡之前,我将它们放入“GridView”中。但由于大型“GridView”中的图片“位图”无法正确显示。我在存钱之前已经试过了

bitmap.setHeight();
bitmap.setWidth();
但Android Studio强调并表示我不能使用这些方法。如果我理解正确,这与API有关。
建议如何制作50×50像素的图片?

只需修改宽度和高度,即可更改位图的大小。就这样,

public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {

    int width = bm.getWidth();
    int height = bm.getHeight();

    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);

    Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);

    return resizedBitmap;

}

如果您已经有位图并希望调整其大小

Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray, 0, bMapArray.length); //Original Initialization 
try { 
 resizedBitmap = Bitmap.createScaledBitmap(bMap, 240, 320, false);// Here I have set it To 240 width and 320 Height
    }
catch (Exception e){
}

我用另一种方法位图。createScaledBitmap(你的位图,宽度,高度,真)