2011-11-13 85 views
1

我的工作测验应用,我需要与图像一起显示问题。我有存储问题在sqlite数据库显示他们在android。但我不知道如何将图像存储在sqlite数据库中并显示它们。 我已经经历了这么多的链接,并发现如何显示远程数据库的图像。但我需要显示来自本地sqlite db的图像。我怎样才能做到这一点。请帮助我解决这个问题。如何在android中的sqlite数据库中存储和检索图像?

在此先感谢。

+0

欢迎来到Stackoverflow!如果您发现回复有帮助,请投票。如果回复成功回答您的问题,请点击旁边的绿色复选标记以接受答案。另请看看http://stackoverflow.com/questions/how-to-ask关于如何写一个好问题的建议 –

回答

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"); 

当你确实需要展示形象,你只是读取FILE_PATH指定的文件你SD卡。

+2

我想补充一点,如果你没有很多图片和/或他们很小,将它们存储在本地而不是SD卡。如果你有很多东西,或者它动态更新,不要这样做。但是,如果您占用的空间相对较小,将其存储在本地意味着您不必担心如果SD卡数据突然消失或sdcard不可用(可能),会发生什么情况。 –

+0

伟大的观点@KevinGalligan –

0

在实际回答您的问题声明的,如果你真的想写信给你DB会增加BLOB字段和存储的数据,但没有理由这样做形象的精神......只要按照Kurtis Nusbaum的建议和存储图像作为一个文件,并在数据库行参考它在哪里。

相关问题