2010-08-23 18 views
16

¿Es posible hacer esto? Estoy leyendo un archivo XML que tiene la cadena Base64 de una imagen. Estoy planeando usar Base64.decode para tener la matriz de bytes de la cadena de imágenes. Sin embargo, estoy atascado sobre cómo usarlo en un ImageView. ¿Tengo que crear primero una clase 'dibujable' y luego configurarla en la propiedad src de ImageView?Mostrar el byte [] a ImageView en Android

Gracias!

Respuesta

25

Puede usar BitmapFactory.decodeByteArray() para realizar la decodificación.

+0

sí. Gracias por el aporte. – firnnauriel

+4

aquí está el enlace a un código de muestra claro: http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/2/ – firnnauriel

45

En caso de que alguien se tropieza en todo lo demás esta pregunta, aquí está el código

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); 
    } 
} 
1
// 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); 

Convertimos nuestros datos de bytes en un mapa de bits utilizando Bitmap.decodeByteArray() y luego ponga eso a un ImageView de nueva creación .

0
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);`