Ответ 1
Вы можете использовать BitmapFactory.decodeByteArray() для выполнения декодирования.
Можно ли это сделать? Я читаю XML файл, который имеет строку Base64 изображения. Я планирую использовать Base64.decode, чтобы иметь массив байтов строки изображения. Я застрял в том, как использовать его в ImageView. Должен ли я сначала создать класс "drawable", а затем установить его в свойство ImageView src?
Спасибо!
Вы можете использовать BitmapFactory.decodeByteArray() для выполнения декодирования.
Если кто-то еще споткнется по этому вопросу, вот код
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);
}
}
// 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.
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);`