保存 ImageView 背景状态

Saving ImageView background state

我有一个 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);