android - ImageAdapter 和 ListView (java.lang.OutOfMemoryError : bitmap size exceeds VM budget)

标签 android out-of-memory

我正在使用 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/

相关文章:

应用程序期间的 Android 通知处于后台, Intent 数据为空

java - 在 Android 中获取 TableLayout 的总行数

android - 如何修复 flutter 异常 : Navigator operation requested with a context that does not include a Navigator

python - 屏蔽 numpy 数组时出现 MemoryError

C# System.OutOfMemoryException 未处理

android - AndroidManifest 中要更改哪些内容才能使应用与 S8、S8+ 兼容?

android - 如何使 GridLayoutManager 中的某个项目的高度相对于另一个项目进行调整?

android - 3686416 字节分配内存不足,android.view.InflateException : Binary XML file line #1: Error inflating class <unknown>

java - 将 ByteArray 转换为 String 时出现 OutOfMemory 异常?

Android - 通过解码文件或解码流将选定的 Uri 转换为位图时出现内存不足错误