如何处理android中的outofmemory异常?

时间:2017-02-01 23:20:46

标签: android image memory bitmap out-of-memory

我查看了一些内存异常问题,但我无法找到解决问题的方法。我有一个处理图像的应用程序。我需要获取图像每个像素的RGB值。当我从whatsapp文件中选择图像时,我可以做到这一点,因为它们的尺寸很小,但如果我想从图库中选择图像(通过相机拍摄),或者如果我想直接从相机拍摄照片,我就会有超常的例外情况。我不想缩小图像因为我需要图像的所有像素信息。

我将图像的文件和名称信息作为字符串,我在解码字符串时遇到此异常,如下所示;

imgDecodableString  = intent3.getStringExtra("BMP");
rotatedBitmap = BitmapFactory.decodeFile(imgDecodableString);

有没有办法解决这个问题? 提前谢谢。

3 个答案:

答案 0 :(得分:0)

如果您在应用程序标记中的清单文件中使用此行代码,则Outofmemory异常将解决此问题。

机器人:largeHeap = “真”

答案 1 :(得分:0)

如果您不想缩小图像,可以使用BitmapRegionDecoder解码图像的每个部分并处理位图,而不是解码整个图像。

答案 2 :(得分:0)

您必须将可绘制图像的高分辨率转换为: drawable-xxhdpi 。 并在应用程序标记内的androidManifest.xml上添加: android:largeHeap =“ true”

我已经使用此方法解决了内存不足的问题