我已经制作了一张表,其中已经存储了用户信息。当用户使用 id 注册时,如果 id 匹配,则从表中检索用户名、课程等所有详细信息。现在我想在我的用户信息表中添加个人资料图片。互联网上几乎所有的教程都是关于将手机中的照片保存到该数据库中并检索它。但我不想要那个。我想为每个用户在表中添加不同的图像,即它应该是特定于用户的。现在我知道使用了 BLOB 数据类型,并且应该将图像转换为字节。但是我不知道应该将图像存储在哪里,无论是在我的手机中还是在我的 res 文件夹中。或者也许将其存储在互联网上。我很困惑。我应该提到这不是一个理想的应用程序,它只是一个模型。
2 回答
1
要考虑的最重要因素之一是图像的大小。如果大小可能超过 200k,那么存在问题的风险就会增加,即不是将图像存储在数据库中,而是检索图像。
在不编写自己的 CursorWindow 替代方案的情况下,CursorWindow(用于保存 Cursor 中行的子组的缓冲区)的大小限制为 2M(在以后的版本中,我相信它是 1M)。如果图片接近 2MB,则无法检索图片(即使不考虑其他列的空间)。
因此,通常推荐的方法是不存储图像,而是存储一种从其他地方的文件存储中检索图像的方法(您提到了 res 文件夹,这可能很好,但您可能需要考虑 APK 的大小) ,然后您可以将文件路径存储在数据库中。
有一个涵盖上述内容的更全面的答案,包括将小图像存储在数据库中,并将较大的图像存储在其他地方(资产文件夹)here
于 2019-02-10T13:10:33.927 回答
0
对于像我一样有同样问题的人,我发现本教程是存储和检索图像的最简单方法。它使用外部 sqlite 数据库来存储图像和信息,并在 java 页面中访问它以显示,我发现这很容易。
于 2019-02-13T07:48:57.747 回答