gpt4 book ai didi

android - 如何使用kotlin将imageview保存到sharedpreference?

转载 作者:行者123 更新时间:2023-12-02 13:11:34 25 4
gpt4 key购买 nike

因此,我尝试将Imageview保存为sharedpreference,以便当用户从应用程序自行选择图像时,该图像将被保存并设置为imageview id(如果可行)!当用户退出我的应用并重新打开它时,图片将与他保存的图片相同?

我尝试了这段代码,但它给了我诸如for input string " "的错误

我的共享首选项

CompassBtn.setOnClickListener{


val prefCompass = getSharedPreferences("Drawable", Context.MODE_PRIVATE)
val editor = prefCompass.edit()
editor.putInt("ic_compass", ic_compass.setImageResource(R.drawable.ic_compass1).toString().toInt())
editor.commit()
}

**这是尝试检索它的方式**
   val prfCompass = getSharedPreferences("Drawable", Context.MODE_PRIVATE)
prfCompass.getInt("ic_compass", 0)

请帮助并提前感谢

最佳答案

首先,如果您不熟悉Android开发,请检查Picasso以上传图片。
简而言之,使用资源ID / URL可以更轻松/更快地上传图像。

您的问题实际上取决于您希望用户将来选择的图像类型。

1)如果所有可以选择的图像都已经在应用程序中,则只需将图像的资源ID保存为SharedPreferences作为int

val sharedPref: SharedPreferences = context.getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)

// Resource id is the int under drawables folder ->R.drawable.myImage
fun save(KEY_NAME: String, value: Int) {
val editor: SharedPreferences.Editor = sharedPref.edit()

editor.putInt(KEY_NAME, value)

editor.apply()
}
fun getInt(KEY_NAME: String): Int {

return sharedPref.getInt(KEY_NAME, 0)
}

2)如果您要让用户从 onActivityResult(这是在用户选择带有 Intent data参数的图像,其中包括图像信息)后调用的画廊(这是棘手的部分)中进行选择。访问意图 (data.getData())的数据将为您提供URI。然后,您需要找到图像的路径(图像存储在用户手机中的路径)并将其保存到 SharedPreferences。我将离开图像之路成为对您的挑战。而当您要上传图像时,您就可以;
  Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
myLayoutItem.setBackground(drawable);

3)如果您有一台服务器,则可以将图像上传到该服务器,然后将URL作为字符串存储在具有image属性为user的SharedPreferences / associate url中。并使用毕加索显示图像。

关于android - 如何使用kotlin将imageview保存到sharedpreference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61830481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com