保存 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);
我有一个 ImageView ImageView1
,它的背景可以由用户设置。我如何保存那个背景的状态,以便当用户关闭应用程序并重新打开它时,ImageView1
的背景仍然是一样的?
是否可以使用 onSaveInstanceState
或者我是否必须写一些不同的东西,如果是的话:我该怎么做?
现在我有:
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("ImageView1", imageView1);
但是 imageView1
得到红色下划线,即使之前声明到 ImageView
您可以使用共享首选项:
- 更改时保存到共享首选项。
- 在应用重新打开时从共享首选项中获取。
查看文档了解更多信息: 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);