android - 如何在首选项中存储图像资源/名称

标签 android sharedpreferences r.java-file save-image

我有一个场景:

假设,有两个图像:one.pngtwo.png。用户必须选择一张图片,我必须在偏好设置中保存图片名称资源ID。稍后当用户打开应用程序时,我将加载用户上次选择的图像。

所以我的问题是如何将其保存在首选项中?为图像保存资源 ID 是否正确?安装应用程序后,R.java 内容是否保持不变?我只是不想在任何地方保存位图,因为它已经存在于可绘制对象中。

请帮我理清思路。谢谢。

最佳答案

您应该保存名称,即(在您的情况下为一、二)

后面可以通过名称获取资源的ID

String imageNameFromPreferences= getLastUsedImageFromPref();
//get resource id by name
final int resourceIdOfLastUsedImage = resources.getIdentifier(imageNameFromPreferences, "drawable", 
   context.getPackageName());
//use this id to set the image anywhere
imageView.setBackgroundResource(resourceIdOfLastUsedImage)

关于android - 如何在首选项中存储图像资源/名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27418486/

相关文章:

android - 如何直接在我的 xml android :onClick 中使用 onBackPressed()

android - FirebaseMessagingService - 如何从后台更新数据库或 SharedPreferences?

java - 尽管我使用 SharedPrefs 自动登录,但它们似乎已被删除

java - 当我从共享首选项中读取数据时,是否需要初始化我的ArrayList?

android - 如何在 Eclipse 中重构 R.java 的包

android - 我应该在我的应用程序中使用 android 语音识别器来收集数据吗?

android - 如何在 SQLite 数据库中执行容错名称搜索

java - 由于 appcompat v7,R.java 没有生成?

Android Room - 嵌套对象模型更改时如何迁移?

Android R 文件未生成