Строка байтового массива в ImageView Bitmap не работает (Kotlin) - PullRequest
0 голосов
/ 27 января 2020

Я в неудачном положении, когда мои веб-разработчики хотят, чтобы изображение загружалось к ним в виде строки байтового массива. Я храню их в основных данных и загружаю в них. Позже мне все еще нужно отобразить изображения в приложении пользователя; но мои представления изображений не заполняются изображениями и не работают с этой ошибкой:

Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference

Вот создание byteArray:

    val mBitmapDrawable = mView.drawable as BitmapDrawable
    val mBitmap = mBitmapDrawable.bitmap
    val stream = ByteArrayOutputStream()
    mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)
    val mByteArray = stream.toByteArray()
    val charset = Charsets.UTF_8
    val mByteArrayString = mByteArray.toString(charset)
    val newItemName = "pgraph-${currentItem.itemName}"
    valueArray.add(Pair(newItemName, mByteArrayString))

Вот попытка декодировать его обратно:

    val imageByteArray = selectedInspection.fields[i].second.toByteArray(charset)
    val mImageBitmap = Bitmap.createBitmap(BitmapFactory.decodeByteArray(
       imageByteArray,
       0,
       imageByteArray.size
    ))
    mView.setImageBitmap(Bitmap.createScaledBitmap(mImageBitmap, mView.width, mView.height, false))

Я получаю правильную строку байтового массива в своих журналах, прежде чем пытаться создать растровое изображение, поэтому imageByteArray не является недействительным. Ошибка возникает в строке «mView.setImageBitmap». Кто-нибудь знает, что может быть причиной этой ошибки? Любая помощь очень ценится!

РЕДАКТИРОВАТЬ: Также видеть это прямо перед Cra sh. Я не знаю, связано ли это:

D/skia: --- Failed to create image decoder with message 'unimplemented'
...