在Android中离线存储高分辨率图片

时间:2016-01-27 14:10:43

标签: java android database image sqlite

我正在开发Android应用程序,但我需要一些帮助。 我需要以高分辨率(1024x768和每个大约2.5 MB)存储大约2000个图像,并且应用程序必须脱机工作,这样我才能从在线数据库或其他任何地方检索它们。这些图片应存储在应用程序内的SQLite数据库中,因为它们中的每一个都与特定产品相关。

我试图将图片转换为Base64字符串,但结果太大而且应用程序崩溃了。它只有在大约467x300和30 KB的情况下才有效,但是它的质量都不尽相同,所以这不是一个好的解决方案。

希望您有有用的建议。谢谢。

2 个答案:

答案 0 :(得分:1)

通常解决此问题的方法是不将图像存储在数据库中,而是在数据库中存储它们的链接。如果您希望它们是私有的,请将它们存储在私有应用程序存储位置。从数据库获取图像很棘手,编辑这样的二进制blob可能很棘手。它可能会导致数据库出现问题,从而导致速度变慢。此外,从文件加载图像比从数据库加载图像更容易。

此外,您可以使用BLOB,它允许存储二进制数据。 SQLite支持,所以......

答案 1 :(得分:0)

以下是我处理高分辨率图像的方法:

  1. 为图像提供唯一的图像ID,存储在数据库中
  2. 将图像保存在Android存储
  3. 每当我需要高分辨率图像时,从数据库中获取其名称。使用该名称从存储中查找图像。
  4. 我很高兴提供一个代码示例,请告诉我。