Байт Android в растровое изображение

1

У меня это прекрасно работает в нашем приложении для iPhone, но у меня проблемы с Android. Я использую одни и те же URL/данные в обоих приложениях. Когда я устанавливаю свое изображение в свой ListView в растровое изображение, которое поступает из байтов, изображение не появляется. Данные есть. Вот код, где я назначаю представление:

if (camera.snapshot != null)
    {
        bMap = BitmapFactory.decodeByteArray(camera.snapshot, 0, camera.snapshot.length);
        image.setImageBitmap(bMap);
    }

Здесь я преобразую строковые данные в байты:

camera.snapshot = responseData.getBytes();

Изображения представляют собой файлы PNG. Они примерно в 4 раза превышают размер, который мне нужен для изображения в виде списка, но я думаю, что они идеально подходят для границ, на которых я устанавливаю ImageView.

На iPhone я просто использую NSData, а затем использую готовый метод в ImageView, чтобы превратить его в изображение. Он отлично работает! Что мне здесь не хватает?

Теги:
image
bitmap
bytearray

2 ответа

0

Здесь все прекрасно. Поэтому вам нужно отлаживать, чтобы попытаться найти, где еще проблема. то есть Camera.snapshot = null? т.е. вы не сможете правильно получать данные. Или также может возникнуть проблема в макетах, чтобы показать изображение. Попробуйте установить предустановленное изображение в изображение и посмотреть, отображается ли оно. Таким образом, вы сможете отслеживать проблему.

  • 0
    Я сделал эти вещи. На самом деле у меня есть изображение по умолчанию на месте. И снимок не нулевой. :(
0

Вероятно, вам понадобится версия с 4 аргументами decodeByteArray: см. http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeByteArray%28byte[],%20int,%20int, %20android.graphics.BitmapFactory.Options% 29.

Параметры будут зависеть от типа изображения PNG, так что вам может потребоваться поэкспериментировать. Для общего PNG может быть что-то вроде этого?

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inDither = true;
opt.inPreferredConfig = Bitmap.Config.ARGB_8888;

Вы можете видеть http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html и http://developer.android.com/reference/android/graphics/Bitmap.Config.html для более подробной информации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню