С помощью чего сохранить в память телефона установленное изображение в ImageView? С помощью какого метода?
Я знаю только метод Shared Preferences для сохранения. Но, кажется, он не сохраняет изображения. Скажите, пожалуйста, как лучше всего это сделать?
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Вообще sharedPreferences используется для хранения простых данных. Например вы можете сохранить имя и id пользователя. Для сохранения изображения нужно писать картинку в память устройства. Например можно сделать так:
private fun saveImage(image: Bitmap, fileName: String): Uri? {
val imagesFolder = File(context.cacheDir, "images")
var uri: Uri? = null
try {
imagesFolder.mkdirs()
val file = File(imagesFolder, fileName)
val stream = FileOutputStream(file)
image.compress(Bitmap.CompressFormat.PNG, 90, stream)
stream.flush()
stream.close()
uri = FileProvider.getUriForFile(context, "package_name", file)
} catch (e: IOException) {
Timber.i("IOException while trying to write file for sharing: ${e.message}")
}
return uri
}
таким способом вы сможете сохранить данные в папку cashe вашего приложения. Вот есть подобный вопрос: 1. Вот туториал так же есть для решения данного вопроса.