内存不足位图Android



我使用了Volley库,结果出现了这个错误。我使用ListView进行显示。如果我不向下滚动列表视图,应用程序不会停止。

我已经阅读了stackoverflow中几乎所有关于"OOM"的线程。我没有发现任何有用的东西。我的应用程序从web获取json字符串,该字符串是基于64编码的图像。我将字符串解码为字节数组,并通过位图工厂进行解码。我显示位图。

如果要在一个活动中显示多个位图,则应仅显示这些位图的缩略图,以避免内存不足错误。你可以这样做:

 Bitmap getThumbnailFromBitmap(bitmap) {
     int width = bitmap.getWidth();
     int height = bitmap.getHeight();
     int max = Math.max(width, height);
     if (max>512) {
            int thumbWidth = Math.round((512f/max)* width);
            int thumbHeight = Math.round((512f/max)* height);
            Bitmap thumbnail = ThumbnailUtils.extractThumbnail(bitmap, thumbWidth , thumbHeight);
            bitamp.recycle();
            return thumbnail ;
     } else {
            return bitmap ;
     }
}

最新更新