2016-06-08 66 views
1

我在我的应用程序中使用sqlite数据库,现在我想允许用户自定义背景图像,使他们能够从他们的画廊中选择一个。将图像存储在应用程序内存中的最佳方式是什么?

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

+1

为什么人们不停地投下这样的问题?它出什么问题了?想知道更多是否是犯罪? – Marat

+0

可能因为您可以自己找到答案,因为关于该主题已经有很多讨论了? – Mono

+0

但是,我对此并不熟悉,有时很难理解马上讨论的内容。我想我并没有问“为我解决”这个问题。我很好奇理论和理解概念。 – Marat

回答

3

SQLite的游标限制为1Mb。所以,你可能无法将它完全存储在数据库中,当你去请求时可能会被截断。将路径存储到数据库表中的图像,并以此方式访问它。

+0

谢谢你的帮助。尽管我的问题是downvoted,你决定回答我:) – Marat

3

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

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

+0

谢谢你的帮助。尽管我的问题是downvoted,你决定回答我:) – Marat

2

我认为这将是更好地节省后台的唯一路径,你就不会被图像

+0

谢谢你的帮助。尽管我的问题是downvoted你决定回答我:) – Marat

2

在我看来大小的限制,保存自定义的背景图片的最佳方式是复制它进入您的应用程序的internal storage (private storage)。如果仅存储文件的路径,则一旦用户删除文件,文件就不可用。 The official docs说关于内部存储是:

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

是的,那更好。 – Fustigador

相关问题