#java #android #android-studio
#java #Android #android-studio
Вопрос:
Я хочу сделать сменный персональный фон для пользователей приложения. Когда они меняют изображение, я не могу сохранить его перед закрытием приложения. Я пробую общие настройки, но не работаю с растровым изображением. Как я могу сохранить и восстановить растровое изображение перед закрытием приложения?
Ответ №1:
//use this method to save your bitmap, call this method when you have bitmap
private void saveBitmap(Bitmap pBitmap){
ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
File directory = contextWrapper.getDir("folderName", Context.MODE_PRIVATE);
if (!directory.exists()) {
directory.mkdirs();
}
File file = new File(directory, "fileName.png");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
pBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
String filePath = file.getAbsolutePath();
//save this path in shared preference to use in future.
} catch (Exception e) {
Log.e("SAVE_IMAGE", e.getMessage(), e);
}
}
используйте этот метод для получения растрового изображения из пути к файлу, который вы сохранили
private void getBitmapFromPath(String pFilePath) {
try {
File f = new File(pFilePath);
Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(f));
//use this bitmap as you want
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
для сохранения и получения пути к файлу
//This for saving file path
PreferenceManager.getDefaultSharedPreferences(context).edit().putString("FILE_PATH_KEY", filePath).apply();
//this for getting saved file path
String filePath = PreferenceManager.getDefaultSharedPreferences(context).getString("FILE_PATH_KEY", "path not retrieved successfully!");
Комментарии:
1. Я сохраняю путь к файлу с помощью этого кода SharedPreferences . Редактор editor = sharedpreferences.edit(); editor.putString(«image_key», путь к файлу); — Я сохраняю путь к файлу editor.commit(); super.onPause(); После того, как я попытаюсь получить код из сохраненных предисловий с помощью этого кода sharedpreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); Файловый путь= sharedpreferences.getString(«resim_anahtari»,»»); но он не работает
2. ваш ключ отличается для сохранения и получения значения из SharedPreference, исправьте его
3. Я добавил ответ для сохранения и извлечения пути
4. Это работает! Спасибо, что помогли мне. И, извините, я пропустил эту часть.