2015-03-31 16 views
6

Tôi có dataurl sauCách tải hình ảnh từ dataurl trong android imageview?

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAADSCAMAAACmVC/YAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODMwQTFBMjFDRkYxMTFFNDk1QzNFODQ3NkZGQzk2MEUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODMwQTFBMjJDRkYxMTFFNDk1QzNFODQ3NkZGQzk2MEUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MzBBMUExRkNGRjExMUU0OTVDM0U4NDc2RkZDOTYwRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MzBBMUEyMENGRjExMUU0OTVDM0U4NDc2RkZDOTYwRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhgPDfMAAAA2UExURZkAAMzMzJsEBLNmZqYzM5wNDcnAwL+amqMmJsOmprmAgKxNTcazs58aGrZzc6lAQK9aWryNjUb/MzMAAAbVSURBVHja7J3blqMgEEV1kJsg6v//7KQ7ilwKYnfnBXL208Q4vRYnxQGK2/APkAwAAAAAAAD8CrUxNjPGptL3hjHnGDOq9Bemx1/YHy8sHamyzGL0zLk2U/i9IF4YuLvesKYTWbgbY3Yef7+P9ReGwYjoe626qEQ6LfcowoIpMdZfGIY5+76DoKHKHRacU9+Pgtd0ebA2X480Ve7R+oLLSwwpL5FkUI9I5Vr34PPXFm7ij6bHy+BO3/We/B1EykeHd+DlVEs+GiS1iVy5FpnSuuONeImFM2l8zKm0LAlB00PABJ5yFnx7fhTRpy+247+cAZMKdSqjm3YY4tfVYVU4XrDhf7LPZ4cLscyNzyhsuc028a8fhUxYyJmIsimSKQip069d+zUpKvdZN3ggDAtfYKEw0duxtLZhYWT+cw9D2OyoV8JsRBvEY/9ukbTpzR8S5ZZBVTtjLlLutKm1eWEUVZWen/bsxz++3yOVYg0cpVaLwlQM+fikedoam6g5j1sgRlhX+9i4VEdI6KO6TTquXJS0p2XLrnRhySjQ92S1Y8z5D5yqdz0Ls45pW8tlPkSUPJZA0AONjnTxSYiwoZqSzIOYXsTG0p0wJh1cf0UMyzIygvF6pelMGD4T2ZaVTlStHyTMleO8GucwCyUfXJ/MpwgTpMSDXLfyqhwhsnptVFkY1ZEwQY1hefc/fMbC6jbVmmvRQbjsVJNzlZsaRH43XLzvfkwQLvGUkSMTCDZouYisgzem5oW53MWuN9ISUarBUuNz1n6mKu7ZOn4nLREZi6Qy33vzo+twLERNrL4WhgwOMowaTeLRv+9rYVbChRbSeBr1F0Hm9DU5RWSC+RFO5Lq2DuZPpryvS5hFknGawxyezF+xpGU3mZUSvD6oVFS/1kSvLGnAtJwL96UqTadyIqC8Wx/PRPLKmbloOrGpzzQCQWRB1vvvZJPMxNkR1kucvGk5YJaxwjM8fJ9YbhPn0ybzFTK+vZ/ZxjSR0Wk4L1UU5hpep6g86xetNuuira4Iky6vo9aSrS9WXDXcuasIQ63RG23c60mTwo3Hy01hHvZqE1myTvIS/yXXuC6DYRWivMTstbEzOSV9LQW2rqcl0Hc6yd/U2rjvF/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH7IdixtjXannItg1w8WxhBniq59rIr/I3OmwiLGHraC/hW/a2s/n+ixg419b8AHyCGES4X6WNZom+2anff7uZwxooP4EQq6XK7irn8aqDIE+yInN3Z58t+v8cdEd7J/7X2wvs5JfyN7Vyfrv9Nmgl2RDHIEKOpCAhAMmj5+KJBGjCC26IPoIhCMBqiKhPFjRHI4BmwmMRgNmyENRiwMNkMZzHadkgGbCQzmSwyfz0PewRvMMx2+jshUJT2YY+jokHqIDcalQn14sspk7ZAaYTPBECmwlA02c9WbKAcjYTPzSJ2z6pPjn2sz00GS5F3O5+jMAAAAAAAAAAAAAAAAAAAAAADAL/n7nOs09bYCYvG3+WlXLNtCzWNnf0HspptVEEu08HuUhcCZy7tyeHRNnuhkhfSW3etH3vF4rP6ghFHJJW/JPeuNMhMX21ErX8q3exMXRXawqIi+KzJThu/FDW4LdZNk8/u9/OWXYmds1qWNj8aWd/75qxC1 

là Có cách nào để tải các dataUrl trong ImageView?

Trả lời

4

Trước tiên, bạn cần phải convert the Base64 encoded string vào một Bitmap. Mã đoạn mã dưới đây từ câu hỏi liên quan:

byte[] decodedString = Base64.decode("Your Base64 String", Base64.DEFAULT); 
Bitmap bitMap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

Khi đã xong bạn có bitmap của bạn trong bitmap Giả sử bạn imageView được định nghĩa là R.id.image_view Sau đó chỉ cần làm như bạn làm với bất kỳ bitmap khác:

ImageView imageView; 
imageView = (ImageView) findViewById(R.id.image_view); 
imageView.setImageBitmap(bitmap); 
+0

có lỗi hết bộ nhớ khi thực hiện giải mã ở trên – Jyothish

+0

@Jyothish Bạn có thể đăng theo dõi ngăn xếp không? –

0

Chỉ giải mã mã hóa hình ảnh Base64 bằng cách sử dụng phương thức Base64.decode() để nhận mảng byte, sau đó tạo Bitmap bằng phương pháp BitmapFactory.decodeByteArray().

+0

tôi có dataurl trong một biến và không cần phải lấy nó từ cơ sở dữ liệu hoặc network.Do tôi cần phải làm giải mã trong một asynctask hoặc làm nó trong chủ đề chính sẽ ảnh hưởng đến hiệu suất? – Jyothish

0

Nếu bạn lấy phần Base64 của đầu vào, bạn có thể dễ dàng chuyển đổi thành bitmap qua thông số này:

byte[] decodedString = Base64.decode("your base64 string", Base64.DEFAULT); 
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
0

nhận được chuỗi base64 trong biến Chuỗi decode

Chuỗi encodedImage; // thiết lập base64 chuỗi giá trị trong chuỗi này byte [] decodedString = Base64.decode (encodedImage, Base64.DEFAULT); Bitmap decodedByte = BitmapFactory.decodeByteArray (decodedString, 0, decodedString.length);

Các vấn đề liên quan