Bitmap Out Of Memory Issues

后端 未结 3 1455
一整个雨季
一整个雨季 2020-12-18 07:49

My Problem

I take a picture with my android device. I then decode that picture from file.

        Bitmap photo = BitmapFactory.deco         


        
3条回答
  •  旧时难觅i
    2020-12-18 08:30

    For out of memory issue

    //decodes image and scales it to reduce memory consumption

    private Bitmap decodeFile(File f){
    
    try {
        //Decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f),null,o);
    
        //The new size we want to scale to
        final int REQUIRED_SIZE=70;
    
        //Find the correct scale value. It should be the power of 2.
        int scale=1;
        while(o.outWidth/scale/2>=REQUIRED_SIZE && o.outHeight/scale/2>=REQUIRED_SIZE)
            scale*=2;
    
        //Decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize=scale;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
    } catch (FileNotFoundException e) {}
    return null;
    }
    

提交回复
热议问题