3

我有一个包含 2000 多个低分辨率图片缩略图的 sqlite 数据库。数据库本身的大小超过 100MB。该项目要求我将照片保存在数据库中而不是文件路径中。

这是我想做的并且需要帮助,因为这是我第一次处理图像。我的应用程序 UI 中有一个水平 GalleryView,我想用从该数据库中提取的图像动态填充。我不介意这些图像是否延迟加载到后台的画廊视图中。我在某处读到我将不得不使用 ImageAdapter 将图像动态绑定到 UI 元素。我需要了解这是如何完成的。我从未使用过 BaseAdapter 类。

谢谢, AB

4

2 回答 2

1

您确实将继承一个适配器以将图像从您的数据库中拉出,将它们转换为位图或可绘制对象,然后将您的图片设置为 ImageView 并将其添加到您的图库中。

我建议您在开始之前立即停止使用画廊。Gallery 有一个错误,它不允许您的适配器正确回收视图。这意味着当用户在每次新图像进入屏幕时滚动图库时,就会创建一个新的 ImageView 对象。这是一种浪费,并且由于垃圾收集不断运行,在滚动您的画廊时会导致明显的性能下降。

要开始使用您的适配器,请查看SimpleCursorAdapter并在线搜索有关如何扩展 SimpleCursorAdapter 的示例。在您的 getView 方法中,您将从数据库中提取图像并将其设置为要显示给用户的视图。

于 2011-10-12T19:57:07.010 回答
0

我可以使用自定义适配器和保存 sdcard 上图像位置的字符串数组来做到这一点。不过,在做这一切之前,我必须从数据库中提取图像并将它们复制到 sdcard 位置。我正在努力避免这一步,因为它加起来需要 5-7 秒才能复制这些图像。

于 2011-10-17T21:42:30.090 回答