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

问题描述 投票:-1回答:2

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

android imageview android-sqlite sqliteopenhelper insert-image
2个回答
1
投票

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

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

因此,一般推荐的方法是不存储图像,而是存储从其他地方的文件存储中检索图像的方法(您已经提到了res文件夹,这可能没问题,但您可能需要考虑APK的大小) ,然后您可以将文件路径存储在数据库中。

有一个更全面的答案涵盖上述内容,包括在DB中存储小图像和在其他地方存储更大的图像(资产文件夹)here


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.