Android显示更大的图像

时间:2014-04-11 09:49:44

标签: android image out-of-memory

我正在尝试显示更大的图像,但它会抛出OutOfMemoryException。 如何在没有OutOfMemoryException的情况下显示更大的图像,不会同时降低图像质量? 在ImageView中显示。

2 个答案:

答案 0 :(得分:1)

如果图像尺寸太大。需要按照以下代码进行扩展。

      private Bitmap myBitmap;
      try {
                BitmapFactory.Options options = new BitmapFactory.Options();
                options.inJustDecodeBounds = true;
                myBitmap = "img_path";

                if (options.outWidth > 3000 || options.outHeight > 2000) {
                    options.inSampleSize = 4;
                } else if (options.outWidth > 2000 || options.outHeight > 1500) {
                    options.inSampleSize = 3;
                } else if (options.outWidth > 1000 || options.outHeight > 1000) {
                    options.inSampleSize = 2;
                }
                options.inJustDecodeBounds = false;

                if (myBitmap != null) {
                    try {
                        if (imageView != null) {
                            imageView.setImageBitmap(myBitmap);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            } catch (OutOfMemoryError e) {
                e.printStackTrace();
                System.gc();
            }

有关更多信息,请访问官方Loading Large Bitmaps Efficiently

答案 1 :(得分:0)

也许如果您将较大的图片划分为较小的图片:How to split an image into multiple smaller images

然后在标准的Android布局的帮助下将它们全部放在一起。

这只是一个想法,我实际上没有测试它或任何东西。

希望这有帮助。