SimpleCursorAdaptor ListView使用TextView和ImageView超过400行内存问题

时间:2011-05-24 20:23:25

标签: android image memory simplecursoradapter

这是最好的方式还是其他方式?

我扩展SimpleCursorAdapter并覆盖getView(int position,View convertView,ViewGroup parent)

我检索我的Cursor,给我的ImageView和TextView充气,拉取数据 从Cursor中填充TextView和ImageView 在ImageView上,我将我的图像作为Blob存储在数据库中。

当我检索我的Blob时,我将其作为byte []拉出并将其转换为

位图如下:

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

然后我在ImageView上将我的Bitmap设置为:

iv.setImageBitmap(BMP);

现在我可以向下滚动没问题,但是当我开始向后滚动时 在列表中我得到了主要的记忆问题和零星的跳跃(从何时开始) 垃圾收集赶上)。

有谁能告诉我完成这项任务的最佳方法是什么 是?有没有办法回收不在视图中的位图 接近他们时拉他们再显示?

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

提前谢谢。

2 个答案:

答案 0 :(得分:0)

您是否观看了此视频:http://www.youtube.com/watch?v=N6YdwzAvwOA

并阅读此主题:how to clear the cached images in Android?

基本上你想回收目前看不到的任何图像。

答案 1 :(得分:0)

我最终将图像移动到外部存储并执行与之前尝试使用数据库时尝试的相同的延迟加载。以某种方式从数据库中尝试这一点并不允许图像被收集。