内存位图解码文件 - Android

时间:2017-04-05 09:11:12

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

我遇到同样的问题here,我不知道现在是否有解决方案。 我有一个2592x1944像素的位图图像,当我运行Bitmap.decodeFile(...)时,应用程序崩溃导致OutOfmemory异常。

你们中有谁知道如何解决它?

非常感谢

以下是我的代码:

for (int iFile = 0; iFile < files.length; iFile++) {
     if (files[iFile].exists()) {
         bitmap = BitmapFactory.decodeFile(files[iFile].getAbsolutePath());
         int[][][] rgb = Utils.getImageRgb(bitmap);

         indexLastFile = iFile + 1;
         images.put("M" + (iFile + 1), rgb);
      }
}

2 个答案:

答案 0 :(得分:1)

如果你真的想单独使用位图,请尝试有效加载图像,你需要在将图像加载到ram内存之前缩放图像。

https://www.youtube.com/watch?v=12cB7gnL6po按照此系列视频有效加载位图。

答案 1 :(得分:0)

您应该避免使用位图,否则您必须面对OutOfMemory异常。

尝试使用图片库PicassoGlide以避免内存不足问题&amp;更好的表现。

将路径替换为本地文件夹路径或服务器URL

Glide.with (context).load (path).asBitmap().into(imageView);