Отображать байт [] в ImageView в Android

Можно ли это сделать? Я читаю XML файл, который имеет строку Base64 изображения. Я планирую использовать Base64.decode, чтобы иметь массив байтов строки изображения. Я застрял в том, как использовать его в ImageView. Должен ли я сначала создать класс "drawable", а затем установить его в свойство ImageView src?

Спасибо!

Ответы

Ответ 1

Вы можете использовать BitmapFactory.decodeByteArray() для выполнения декодирования.

Ответ 2

Если кто-то еще споткнется по этому вопросу, вот код

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.ImageView;

public class ModelAssistant {

    public static void setImageViewWithByteArray(ImageView view, byte[] data) {
        Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
        view.setImageBitmap(bitmap);
    }
}

Ответ 3

// Convert bytes data into a Bitmap
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
ImageView imageView = new ImageView(ConversationsActivity.this);
// Set the Bitmap data to the ImageView
imageView.setImageBitmap(bmp);

// Get the Root View of the layout
ViewGroup layout = (ViewGroup) findViewById(android.R.id.content);
// Add the ImageView to the Layout
layout.addView(imageView);

Мы преобразуем наши байтовые данные в битмап, используя Bitmap.decodeByteArray(), а затем установите это для вновь созданного ImageView.

Ответ 4

byte[] pic = intent.getByteArrayExtra("pic");` capturedImage = (ImageView) findViewById(R.id.capturedImage);`Bitmap bitmap = BitmapFactory.decodeByteArray(pic, 0, pic.length);` Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap,capturedImage.getWidth(),capturedImage.getHeight(),true);` capturedImage.setImageBitmap(bitmap1);`