High resolution image not display in ImageView Android

后端 未结 5 985
小鲜肉
小鲜肉 2021-01-07 03:13

I am displaying an image in full screen mode,but whenever going to display large image then nothing display in the image view. Below code try to resize bitmap but got same r

5条回答
  •  清酒与你
    2021-01-07 03:53

    You solve your problem from two mehtods Method 1

    call this method(function)

    public Bitmap decodeImage(int resourceId) {
        try {
            // Decode image size
            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
            BitmapFactory.decodeResource(getResources(), resourceId, o);
            // The new size we want to scale to
            final int REQUIRED_SIZE = 100; // you are free to modify size as your requirement
    
            // 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.decodeResource(getResources(), resourceId, o2);
        } catch (Throwable e) {
            e.printStackTrace();
        }
        return null;    
    }
    

    add this before your adapter

    picture.setImageBitmap((decodeImage(item.drawableId));
    

    instead of

     picture.setImageResource(item.drawableId);
    

    Mehtod 2

    You need to adjust your image size. The better way is to decode the image to a bitmap, and set the bitmap to the ImageView. For example:

    BitmapFactory.Options opts = new BitmapFactory.Options();
    opts.inSampleSize = 4;
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), item.drawableId, opts);
    picture.setImageBitmap (bitmap);
    

提交回复
热议问题