Android SimpleCursorAdaptor ListView使用超过400+的TextView和ImageView;行内存问题

Android SimpleCursorAdaptor ListView使用超过400+的TextView和ImageView;行内存问题,android,image,memory,simplecursoradapter,Android,Image,Memory,Simplecursoradapter,这是最好的方法还是其他方法 我扩展SimpleCursorAdapter并覆盖getView(int位置,视图 convertView,视图组父级) 我检索光标,放大ImageView和TextView,提取数据 并填充TextView和ImageView 在ImageView上,我将图像作为Blob存储在数据库中 当我检索Blob时,我将其作为字节[]取出,并将其转换为 位图如下所示: 位图bmp=BitmapFactory.decodeByteArray(img,0,img.length)

这是最好的方法还是其他方法

我扩展SimpleCursorAdapter并覆盖getView(int位置,视图 convertView,视图组父级)

我检索光标,放大ImageView和TextView,提取数据 并填充TextView和ImageView 在ImageView上,我将图像作为Blob存储在数据库中

当我检索Blob时,我将其作为字节[]取出,并将其转换为

位图如下所示:

位图bmp=BitmapFactory.decodeByteArray(img,0,img.length)

然后,我将ImageView上的位图设置为:

iv.设置图像位图(bmp)

现在我可以向下滚动,没有问题,但当我开始向后滚动时 在列表中,我遇到了严重的记忆问题和偶尔的跳跃(从何时开始) 垃圾收集会赶上进度)

有人能告诉我完成这项任务的最佳方法是什么吗 是有没有办法回收不在视图中的位图 当接近它们时,拉动它们并再次显示

我已经搜索了几个月,尝试了各种技术,但我在 找不到能让我完成这项任务的人


提前感谢。

您是否观看了以下视频:

读这篇文章:


基本上,您希望回收当前不可见的任何图像。

我最终将图像移动到外部存储,并执行与我在以前尝试使用数据库时相同的延迟加载,这起到了作用。不知何故,从数据库中尝试这一点并不能让图像被垃圾收集。

我已经观看了视频并阅读了帖子,但问题仍然存在,但感谢您提供了这些内容,它们提供了大量信息。我仍然相信图像的数量是有原因的,每个图像都是不同的,从数据库中提取,然后从字节[]创建一个位图,并在ImageView上设置。但是,它们似乎没有被垃圾收集,并且如果ListView没有抛出错误,它们无法回收。