0

我们正在使用 Lazylist 来显示来自网络(XML Feed)的图像。小尺寸图片可以正常加载,但是当我们尝试加载大尺寸图片(超过 500kb)时,它会抛出 Out Of Memory 异常。这应该是什么解决方案?

非常感谢任何帮助。

谢谢!

4

2 回答 2

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);
于 2012-08-30T09:32:06.077 回答
0

请参阅下面的 Stack Overflow 答案链接以了解延迟加载列表视图,它可能会对您有所帮助,如果您对此有任何疑问,请告诉我。

延迟加载列表视图

于 2012-08-30T13:26:52.243 回答