我们正在使用Lazylist来显示来自网络的图像(XML Feed)。小尺寸图像正确加载,但是当我们尝试加载大尺寸图像(超过500kb)时,它会抛出Out Of Memory异常。这应该是什么解决方案?
任何帮助都非常感激。
谢谢!
答案 0 :(得分:0)
在这种情况下,请捕获异常并尝试加载质量降低的图像。您可以使用Bitmap.Config类。默认情况下,它使用Bitmap.Config.ARGB_8888进行解码,因此请尝试使用Bitmap.Config.ARGB_4444。如果它失败,请使用低质量解码Bitmap.Config.ALPHA_8
使用Bitmap.Config.ARGB_4444检查示例代码以进行解码:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inPurgeable = true;
options.inInputShareable = true;
options.inTempStorage = new byte[32 * 1024];
options.inPreferredConfig = Bitmap.Config.ARGB_4444;
options.inSampleSize = 1;
Bitmap imageBitmap = BitmapFactory.decodeFile(bitmapPath, options);
答案 1 :(得分:0)
请参阅下面的Stack Overflow回答链接了解延迟加载列表视图,它可能对您有所帮助,如果您对此有任何疑问,请告诉我。