如何将自己的图像插入SQLite表?

时间:2019-02-10 08:06:00

标签: android imageview android-sqlite sqliteopenhelper insert-image

我制作了一个表,其中已经存储了用户信息。当用户使用ID注册时,如果ID匹配,则从表中检索所有详细信息,例如用户名,课程。现在,我想在用户信息表中添加个人资料图片。互联网上几乎所有的教程都是关于将手机中的照片保存到该数据库并进行检索的。但是我不想要那样。我想为每个用户在表中添加不同的图像,即它应该特定于用户。现在,我知道使用了BLOB数据类型,并且图像应转换为字节。但是我不知道应该将图像存储在哪里,无论是在手机中还是在res文件夹中。或者将其存储在互联网上。我很困惑。 我应该提到这不是一个理想的应用程序,它只是一个模型。

2 个答案:

答案 0 :(得分:1)

要考虑的最重要因素之一是图像的大小。如果大小可能超过200k,那么存在更大的风险,即存在问题,不是将图像存储在数据库中而是要检索图像。

不编写自己的CursorWindow替代方法,然后将CursorWindow(用于保存Cursor中行的子组的缓冲区)的大小限制为2M(在以后的版本中,我认为是1M)。如果图片接近2MB,则无法检索图片(即使不考虑其他列的空间)。

因此,通常建议的方法是不存储图像,而是存储从其他位置的文件存储中检索图像的方法(您已经提到过res文件夹,这可能很好,但您可能需要考虑大小APK),然后可以将文件路径存储在数据库中。

有一个涵盖以上内容的更全面的答案,包括将较小的图像存储在数据库中并将较大的图像存储在其他位置(“资产”文件夹)here

答案 1 :(得分:0)

对于像我一样有相同问题的任何人,我发现this教程是存储图像和检索图像的最简单方法。它使用外部sqlite数据库存储图像和信息,并在java页面中访问它以显示我发现非常容易的信息。