Android 如何将自己的图像插入SQLite表?
我已经制作了一个表,其中已经存储了用户信息。当用户使用id注册时,如果id匹配,则从表中检索用户名、课程等所有详细信息。现在我想在我的用户信息表中添加个人资料图片。互联网上几乎所有的教程都是关于将手机中的照片保存到数据库并检索它的。但我不想那样。我想为每个用户在表中添加不同的图像,也就是说,它应该是特定于用户的。现在我知道使用了BLOB数据类型,应该将图像转换为字节。但是我不知道我应该把这些图像存储在哪里,不管是在我的手机里还是在我的res文件夹里。或者把它储存在互联网上。我很困惑。Android 如何将自己的图像插入SQLite表?,android,imageview,android-sqlite,sqliteopenhelper,insert-image,Android,Imageview,Android Sqlite,Sqliteopenhelper,Insert Image,我已经制作了一个表,其中已经存储了用户信息。当用户使用id注册时,如果id匹配,则从表中检索用户名、课程等所有详细信息。现在我想在我的用户信息表中添加个人资料图片。互联网上几乎所有的教程都是关于将手机中的照片保存到数据库并检索它的。但我不想那样。我想为每个用户在表中添加不同的图像,也就是说,它应该是特定于用户的。现在我知道使用了BLOB数据类型,应该将图像转换为字节。但是我不知道我应该把这些图像存储在哪里,不管是在我的手机里还是在我的res文件夹里。或者把它储存在互联网上。我很困惑。 我应该指出
我应该指出,这不是一个理想的应用程序,它只是一个模型最重要的因素之一是图像的大小。如果大小可能超过(比如)200k,则出现问题的风险越来越大,问题不是存储在数据库中的图像,而是检索图像 在不编写自己的CursorWindow替代方案的情况下,CursorWindow(保存光标中行的子组的缓冲区)的大小限制为2米(在某些较新版本中,我相信是1米)。如果图片接近2MB,则无法检索图片(即使不考虑其他列的空间)
这样,通常推荐的方法是不存储图像,而是存储从其他文件存储区中检索图像的方法(您已经提到了RES文件夹,这可能很好,但是您可能需要考虑APK的大小),然后您可以将文件路径存储在数据库中。
有一个更全面的答案涵盖了上述内容,包括将小图像存储在DB中,将大图像存储在其他位置(资产文件夹)对于像我这样有同样问题的人,我发现教程是存储和检索图像的最简单方法。它使用一个外部sqlite数据库来存储图像和信息,并在java页面中访问它来显示,我发现这非常容易 除非存在安全问题,否则将图像存储在手机内存中而不是数据库中。那么如何指定路径并检索它?存储blob是最糟糕的做法。