滚动浏览 gridview 时出现 OOM 错误

OOM error when scrolling through gridview

我正在开发一个带有一堆可点击 gif 的 android 应用程序。

我创建了一个可滚动的 gif 网格视图。这些 gif 是来自 https://github.com/sbakhtiarov/gif-movie-view 的 gifmovieview。每次我滚动时,图像都会不断加载到内存中,最终在列表上下滚动大约 6-10 次后导致 OOM 错误。

我该如何解决这个问题?并可能添加平滑滚动?

您可能将所有 GIF 都保存在内存中。使用 LRUCache 来限制一次内存中的 GIF 数量。

平滑滚动问题可能是由于图像解码造成的。将其移至单独的线程,并在完成之前显示占位符图像。

我没有正确回收图像,所以它们没有从内存中删除或重复使用,而是不断地相互叠加。

我将 convertView!=null 更改为 convertView==null 并将 inflate 放入其中。