Сохраненное изображение невозможно восстановить - android - PullRequest
0 голосов
/ 19 июня 2020

Я сохраняю изображение, используя приведенный ниже код.

val cw = ContextWrapper(applicationContext)
val directory =
        cw.getDir("imageDir", Context.MODE_PRIVATE)
val file = File(directory, Utility().replaceSpaces(categoryName) + ".png")
if (!file.exists()) {
Log.d("path", file.toString())
var fos: FileOutputStream? = null
try {
     fos = FileOutputStream(file)
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos)
     fos.flush()
     fos.close()
     } catch (e: IOException) {
         e.printStackTrace()
     }
}

Я получаю изображение, используя следующий код.

val uri =
    if (category.isEmpty()) "@drawable/appicon"
    else "@drawable/${Utility().replaceSpaces(category)}"
var image = resources.getIdentifier(uri, null, packageName)

if (image == 0)
    image = resources.getIdentifier("@drawable/appicon", null, packageName)

val imageView = ImageView(this)

при извлечении изображение всегда 0

1 Ответ

0 голосов
/ 19 июня 2020

Я сохраняю изображение, используя приведенный ниже код

Вам не нужен ContextWrapper.

Я получаю изображение, используя следующий код

Какой-то довольно странный код для попытки получить идентификатор ресурса. Ресурсы не могут быть изменены во время выполнения, и ваше сохраненное изображение не является ресурсом.

Вместо этого создайте объект File так же, как вы это делали в своем первом фрагменте кода. Затем передайте этот объект File в библиотеку загрузки изображений, например Glide или Picasso. Они могут считывать и декодировать изображение в фоновом потоке, а затем обновлять ваш ImageView результатом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...