如何在android中的sqlite数据库中存储和检索图像?

时间:2011-11-13 15:48:58

标签: android

我正在开展测验应用,我需要显示问题以及图片。我将问题存储在sqlite数据库中,将它们显示在android 中。但我不知道如何将图像存储在sqlite db中并显示它们。     我经历了这么多链接,并找到了如何从远程数据库显示图像。但我需要显示本地sqlite db 的图像。我怎样才能做到这一点。请帮我解决这个问题。

先谢谢。

2 个答案:

答案 0 :(得分:2)

您通常不会将二进制数据保存到数据库。它被认为是糟糕的形式,并且由于数据最终存储在磁盘上的方式,可以使对数据库的查询耗时很长。您应该做的是在数据库中存储图像的文件路径,并将图像存储在SD卡上。

无需为您编写大量代码,这是一个高级示例。首先,使用以下sql调用创建表来存储图像:

CREATE TABLE images (_id INTEGER PRIMARY KEY AUTOICREMENT, file_path TEXT, name TEXT);

当需要插入图像时,您必须做两件事。首先,将图像写入SD卡。按照此处的说明执行此操作。一旦你把它写出来并获得了它的文件名,你就像这样做一个SQL查询:

INSERT INTO images (file_path, name) VALUES ("your file path", "name of image");

每当您确实需要显示图像时,只需从SD卡中读取file_path指定的文件。

答案 1 :(得分:0)

本着实际回答你声明的问题的精神,如果你真的想把图像写入数据库,你会添加一个BLOB字段并将数据存储在那里,但是没有理由这样做...只需按照Kurtis Nusbaum的建议并将图像存储为一个文件,并在db行中引用它的位置。