С помощью чего сохранить в память телефона установленное изображение в 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. Вот туториал так же есть для решения данного вопроса.

→ Ссылка