0

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

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

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

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

位图如下:

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

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

iv.setImageBitmap(bmp);

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

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

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

先感谢您。

4

2 回答 2

0

你看过这个视频吗:http ://www.youtube.com/watch?v=N6YdwzAvwOA

并阅读此线程:如何清除 Android 中缓存的图像?

基本上你想回收当前不可见的任何图像。

于 2011-05-24T20:32:10.130 回答
0

我最终将图像移动到外部存储并执行与我在之前尝试使用数据库时尝试的相同的延迟加载,这很有效。不知何故,从数据库中尝试这样做不允许图像被垃圾收集。

于 2011-06-17T11:44:28.843 回答