将图像存储在应用程序内存中的最佳方法是什么?

时间:2016-06-08 07:34:37

标签: android sqlite

我在我的应用程序中使用sqlite db,现在我想允许用户自定义背景图像,使他们能够从他们的图库中选择一个。

我应该只存储图像的路径并且每次都要简单地引用它,或者我应该如何将图像传输到某些文本并将其完全存储在我的数据库中?第二个选项可防止图片从图库中删除。但我想知道最合适的做法。

4 个答案:

答案 0 :(得分:3)

SQLite的游标限制为1Mb。因此,您可能无法将其完全存储在数据库中,当您去请求它时可能会被截断。将路径存储到数据库表中,然后以这种方式访问​​它。

答案 1 :(得分:3)

您不会将其存储为文字。将其作为blob存储到您的数据库中。在我看来,这是要走的路(如果你还是使用SQLite)。

如果您有大图像,则将路径存储到存储,而不是图像存储到数据库。

答案 2 :(得分:2)

我认为最好只保存背景路径,不受图像大小的限制

答案 3 :(得分:2)

在我看来,保存自定义背景图片的最佳方法是将其复制到应用程序的internal storage (private storage)。如果仅存储文件的路径,则在用户删除该文件后,该文件将无法使用。 The official docs关于内部存储的说法是:

  • 它始终可用。
  • 此处保存的文件默认只能由您的应用访问。
  • 当用户卸载您的应用时,系统会从内部存储中删除您的所有应用文件。