要保存最后选择的背景图片,你可以使用SharedPreferences来存储图片的路径。以下是一个示例代码:
// 保存图片路径
public void saveImagePath(String imagePath) {
SharedPreferences preferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("background_image", imagePath);
editor.apply();
}
// 获取最后选择的背景图片路径
public String getLastSelectedImagePath() {
SharedPreferences preferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
return preferences.getString("background_image", "");
}
在保存图片路径之前,你需要获取图片的路径,可以通过以下代码实现:
// 选择图片
public void selectImage() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
}
// 获取选择的图片路径
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
Uri imageUri = data.getData();
String imagePath = getRealPathFromURI(imageUri);
saveImagePath(imagePath);
}
}
// 获取图片真实路径
public String getRealPathFromURI(Uri contentUri) {
String[] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
cursor.close();
return path;
}
以上代码中,selectImage()
方法用于启动图片选择器,onActivityResult()
方法用于获取选择的图片路径,并调用saveImagePath()
方法保存路径。getRealPathFromURI()
方法用于获取图片的真实路径。
在你需要使用背景图片的地方,可以通过调用getLastSelectedImagePath()
方法获取最后选择的背景图片路径,然后设置为背景。
希望对你有帮助!