【问题标题】:How to add images to Realm Database in Android?如何在 Android 中将图像添加到领域数据库?
【发布时间】:2016-09-02 10:56:22
【问题描述】:

我正在尝试使用Realm 作为database 在我的应用程序中实现登录(无注册)服务。这是我第一次尝试使用它,所以我对 Realm 真的很陌生。 我已经阅读了Realm documentation,但我无法弄清楚如何将 Image 添加到 Realm 并在我的应用程序中使用它。

场景是这样的:我已经设置了预定义的用户名和密码,当用户使用该用户名和密码登录时,我想将Navigation Drawer 中的帐户标题图像更新为usernamepassword。此外,用户也可以更新帐户标题图像。

我希望你们能够理解我的情况。请帮我解决这个问题。

非常感谢任何帮助。谢谢。 :)

安莫尔

【问题讨论】:

  • 我永远不会建议将图像保存在数据库中,您将需要将其转换为其他类型的开销,通常是 base64 字符串、atob 和 btoa 转换。相反,只需保存该图像的路径。可以是本地路径或url。
  • 那么,我该如何解决我上面的场景呢?你知道有什么更好的选择吗?如果您能告诉我,我将非常感谢您。

标签: android database realm


【解决方案1】:

领域文档说以下限制:

字符串和字节数组 (byte[]) 不能大于 16 MB。

推荐的方法是将路径保存到文件而不是实际图像。

【讨论】:

  • 好的。但是您知道某些应用程序中的图像是如何从服务器显示的吗?他们是如何实现的?他们真的为每张图片保存了一个文件的路径吗?
  • 从技术上讲,我使用SERVER_URL + "/files" + stuff.getImageUrl() 存储了一个用于获取图像的相对 URL,并将其交给 Glide,由 Glide 为我处理
  • 哦。为了更好地理解它,我可以参考 Stack 上的任何代码或以前的问题吗?
  • 谢谢@EpicPandaForce! :D
【解决方案2】:

其中一种方法是将图像转换为base64字符串并将其作为字符串存储在领域数据库中。

在检索时,将该 base 64 字符串解码为图像并使用它。

这是link of how to convert image to base64

另一个不太可靠的解决方案是将图像下载到某个文件中并将文件路径存储在领域中

【讨论】:

    【解决方案3】:

    如果领域中有 blob 数据类型,那么您可以将图像字节数组存储在 blob 中

    【讨论】:

      【解决方案4】:

      如果你有较大的位图(图像),最好将图像存储在磁盘上,并将路径存储在 Realm 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-12
        • 2014-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多