保存 ImageView 背景状态

问题描述

我有一个 ImageView ImageView1,它的背景可以由用户设置。如何保存该背景的状态,以便当用户关闭应用并重新打开它时,ImageView1 的背景仍然相同?

是否可以使用 onSaveInstanceState 或者我是否必须写一些不同的东西,如果是这样:我该怎么做?

现在我有

public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("ImageView1",imageView1);

但是 imageView1 得到红色下划线,即使之前声明为 ImageView 的 id

解决方法

您可以使用共享首选项:

  • 在更改时保存到共享首选项。
  • 从应用重新打开时的共享首选项获取。

查看文档了解更多信息: https://developer.android.com/training/data-storage/shared-preferences

,

您可以按如下方式使用 SharedPreferences:

 SharedPreferences sharedPreferences;
 sharedPreferences = getSharedPreferences("data",0);
 SharedPreferences.Editor editor = sharedPreferences.edit();
 editor.putString("image",//put image path here);
 editor.apply();

然后重写onResume方法如下

@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = getSharedPreferences("data",0);
String imagePath = sharedPreferences.getString("image",""); //default value is empty
}

然后使用 picasso 或 glide like 加载图像..

 Picasso.get().load(imagePath).into(imageview);