2010-08-23 44 views
16

Có thể thực hiện việc này không? Tôi đang đọc một tập tin XML có chuỗi Base64 của một hình ảnh. Tôi đang lập kế hoạch để sử dụng Base64.decode để có mảng byte của chuỗi hình ảnh. Tôi bị mắc kẹt mặc dù làm thế nào để sử dụng nó trong một ImageView. Tôi có phải tạo một lớp 'drawable' trước rồi đặt nó vào thuộc tính src của ImageView không?Hiển thị byte [] tới ImageView trong Android

Cảm ơn!

Trả lời

25

Bạn có thể sử dụng BitmapFactory.decodeByteArray() để thực hiện giải mã.

+0

có. Cảm ơn các đầu vào. – firnnauriel

+4

đây là liên kết đến một mã mẫu rõ ràng: http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/2/ – firnnauriel

45

Trong trường hợp bất cứ ai tình cờ khác qua câu hỏi này, đây là mã

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

Chúng tôi chuyển đổi dữ liệu byte của chúng tôi vào một Bitmap sử dụng Bitmap.decodeByteArray() và sau đó thiết lập đó để một ImageView mới được tạo .

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);` 
Các vấn đề liên quan