在android上存储图像

时间:2010-11-02 05:45:49

标签: android database image

我正在开发一个小型Android数据库应用。与数据库中的记录相关联的是许多图像(图像分辨率可能与设备上的屏幕相同),每条记录最多可以有20个图像。哪里是存储图像的最佳位置。我在数据库本身或SD卡上思考。我对Android很新,但还不太确定我在做什么。

2 个答案:

答案 0 :(得分:4)

虽然可以将图像本身放在数据库中(作为blob),据我所知,这不是最好的做法。

你谈的图像有多大?你说的是关于屏幕的分辨率,但是通过压缩,它们可能足够小。

如果它们相当小,请考虑使用手机的内部缓存(从上下文中使用getCacheDir()找到)。这还有一个额外的好处,即允许用户从应用程序菜单中删除缓存,并且您的图像将专用于您的应用程序。 Android文档建议内部缓存大约增加1MB。

如果它们太大而无法存储在内部缓存中,则SD卡可能是您唯一的选择。这样做的缺点是那些图像对其他应用程序是可见的,它们可以删除,删除,重命名等。你不能保证它们就像你离开它们时那样。

答案 1 :(得分:3)

在我的应用程序中,我被迫将SQLite中的图像存储为blob。 SQLite中的Blob大小理论上限制为2 gigs - 但是手动recommends to use only few megs大小的blob。所以我正在分块存储的图像。从性能的角度来看 - 一切都很好

无论如何,我很确定存储在DB中的图像比其他外来方式更具吸引力。例如。没有人可以预测SD卡的容量,甚至无法预测它的存在。