我正在使用 ListView 显示我通过 ImageAdapter 类提供的图像。 它在我的设备(以及我测试过的许多其他设备)上运行良好,但不知何故,当我使用模拟器并长按向上/向下按钮时 - 我在 10 后出现内存不足错误-15 秒。
我尝试了清除缓存、取消缓存等 - 没有任何帮助。
我知道这种崩溃非常罕见(我无法在任何“真实”设备上重现它),但我可以在 DDMS 上看到“GC freed”在长按期间变得越来越大,我找不到清除它们的方法。
Tnx,我们将不胜感激。
最佳答案
您应该使用 inSampleSize 选项进行解码以减少内存消耗。 Strange out of memory issue while loading an image to a Bitmap object
JustDecodeBounds 中的另一个选项可以帮助您找到正确的 inSampleSize 值 http://groups.google.com/group/android-developers/browse_thread/thread/bd858a63563a6d4a
您还应该考虑使用 inPurgeable 选项 http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inPurgeable .它允许系统释放您的内存以避免 OutOfMemory。
关于android - ImageAdapter 和 ListView (java.lang.OutOfMemoryError : bitmap size exceeds VM budget),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3049821/