好的,这是一个非常常见的问题,但我的问题有点不同,我找不到其他主题的解决方案,所以我在这里发布新问题。我有一个显示 ListView 的应用程序。ListView 的每一行,我都有一个 ImageView 来使用 ListAdapter 从 SD 卡加载一个小位图图标(它很小,所以问题不在于大小)。现在,如果我慢慢滚动列表,它工作正常。但是如果我滚动得非常快,当 ListView 足够长时,它不再显示图标,logcat 中的消息是这样的:
126 600-byte external allocation too large for this process.
VM 不会让我们分配 126,600 字节
然后应用程序崩溃和 logcat 显示:
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
我在 2 台不同的设备上进行了测试,其中只有 1 台出现此错误,其他的正常。请注意,此错误仅在 ListView 滚动非常快时发生。那是因为创建的新线程与垃圾收集的速度不匹配吗?在这种情况下,有人可以给我一些建议吗?