【问题标题】:Saving an image from gallery using SharedPreferences使用 SharedPreferences 从图库中保存图像
【发布时间】:2018-06-07 09:41:57
【问题描述】:

我是我的ProfileFragment.java

我有一个按钮,允许用户更改他们的个人资料照片和横幅。当用户点击“更改横幅”时,他会被重定向到画廊,在那里他可以选择他想要的照片,然后,一旦选择,照片就会使用 Picasso 进行更改

Picasso.with(getContext()).load(imageUri).resize(446, 203).into(imgFotoCapa);)

问题是,这只会在用户不关闭应用程序时持续...一旦用户关闭它,然后再重新打开它,横幅就会恢复为默认值。

如何存储来自图库的 imageUri,以便以后检索它,并且每次用户输入 ProfileFragment.java 时,照片都会返回到横幅?

提前致谢!

【问题讨论】:

    标签: java android


    【解决方案1】:

    在您的情况下发生的情况是图像没有被保存,一旦片段被破坏,图像数据也被破坏。

    如果您只保存一个 uri 或简单的东西,您可以使用 SharedPreferences(查看this 答案以将 uri 保存在 SharedPreferences 中)。另一方面,如果您要存储更复杂的内容,我建议您使用数据库。看看 Realm docs,甚至是 Room 持久性 here

    【讨论】:

    • 嗯,我已经尝试过您发送的问题中的回答方式,但没有成功...当我尝试检索时,它显示“不兼容的类型”
    • 当你回到片段时,你需要再次访问 SharedPreferences 来加载图像。为什么您尝试的答案不起作用?您是否调试过图片是否在代码中加载?
    • 好吧,检索我使用过的:` SharedPreferences sp2 = getContext().getSharedPreferences("FotosCapa", Context.MODE_PRIVATE);尝试 { imageUri = URI.create(sp2.getString("url", "defaultString")); } catch (IllegalArgumentException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); }` 我没有成功
    • “不兼容的类型”可能会导致 uri 被保存为字符串。你试过转换它吗?
    • 不,我什至无法运行我的应用程序,因为它给出了下划线红色错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多