我正在尝试显示更大的图像,但它会抛出OutOfMemoryException。 如何在没有OutOfMemoryException的情况下显示更大的图像,不会同时降低图像质量? 在ImageView中显示。
答案 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布局的帮助下将它们全部放在一起。
这只是一个想法,我实际上没有测试它或任何东西。
希望这有帮助。