Чтобы правильно преобразовать его в ByteArray:
val obrazek = "0xFFD8FFE000104A46494600010101012C012C0000FFDB00430006040506050406060506070706080A100A0A09090A14"
val hexString = obrazek.substringAfter("0x")
val bigInt = BigInteger(hexString, 16)
val data = bigInt.toByteArray()
BigInteger
преобразует шестнадцатеричный код в целые, если вы установите основание на 16. Затем целые числа можно преобразовать в байты.
BitmapFactory.decodeByteArray
результаты к нулю. Возможно, данные содержат только пиксели изображения и не обернуты в закодированный формат, такой как PNG.
Я также попробовал этот код:
val bmp = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)
val buffer = ByteBuffer.wrap(data)
buffer.rewind()
bmp.copyPixelsFromBuffer(buffer)
Но это дает мне ошибку Buffer not large enough for pixels
. Возможно, потому что шестнадцатеричный код, который вы дали, не является полным.