2010-08-23 15 views
16

È possibile farlo? Sto leggendo un file XML che contiene la stringa Base64 di un'immagine. Sto pensando di usare Base64.decode per avere la matrice di byte della stringa di immagine. Sono bloccato su come utilizzarlo in un ImageView. Devo prima creare una classe 'disegnabile' e poi impostarla sulla proprietà src di ImageView?Visualizza byte [] su ImageView in Android

Grazie!

risposta

25

È possibile utilizzare BitmapFactory.decodeByteArray() per eseguire la decodifica.

+0

sì. Grazie per l'input. – firnnauriel

+4

ecco il link a un chiaro codice di esempio: http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/2/ – firnnauriel

45

Nel caso in cui nessun altro si imbatte in questa domanda, ecco il codice

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

Convertiamo i nostri dati di byte in una bitmap utilizzando Bitmap.decodeByteArray() e quindi impostare che ad un ImageView appena creato .

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