Как создать Drawable из байта []? (Android)
У меня есть массив байтов, и мне нужно преобразовать его в Android Drawable. Как я могу выполнить это преобразование?
Вот что я пробовал, но безуспешно:
byte[] b = getByteArray();
ByteArrayInputStream is = new ByteArrayInputStream(b);
Drawable drw = Drawable.createFromStream(is, "articleImage");
drw всегда null!
EDIT:
Мой байт [] был фактически поврежден/неполный, это была проблема.
Ответы
Ответ 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);