Подтвердить что ты не робот

Как создать Drawable из байта []? (Android)

У меня есть массив байтов, и мне нужно преобразовать его в Android Drawable. Как я могу выполнить это преобразование?

Вот что я пробовал, но безуспешно:

byte[] b = getByteArray();
ByteArrayInputStream is = new ByteArrayInputStream(b);
Drawable drw = Drawable.createFromStream(is, "articleImage");

drw всегда null!

EDIT:

Мой байт [] был фактически поврежден/неполный, это была проблема.

4b9b3361

Ответ 1

Если ваш byte[] b содержит imagedata, вы также можете попробовать это,

 Drawable image = new BitmapDrawable(BitmapFactory.decodeByteArray(b, 0, b.length));

ИЗМЕНИТЬ

Конструктор BitmapDrawable без ресурсов теперь устарел, поэтому используйте это вместо:

Drawable image = new BitmapDrawable(getResources(),BitmapFactory.decodeByteArray(b, 0, b.length));

Попробуйте это и сообщите мне, что произойдет,

Ответ 2

Вам действительно нужен Drawable? Если битмап может поместиться, то:

Bitmap bitmap = BitmapFactory.decodeStream(is);