2012-07-18 5 views
9

मुझे पता है क्यों OutOfMemoryError अपवाद होता है। लेकिन बाइट सरणी को बिटमैप में कनवर्ट करने का कोई भी अच्छा तरीका है। और मैंने कोड के नीचे उपयोग किया, लेकिन जब बड़ी बाइट यह करीबी ऐप को मजबूर करती है और आउटऑफमेमरी एरर अपवाद देता है।एंड्रॉइड बेस्ट एरे को बिटमैप में परिवर्तित करने का सबसे अच्छा तरीका?

और मेरे पास एपीआई है, यह मुझे बाइट सरणी को और कुछ नहीं लौटाता है।

Bitmap bmp = BitmapFactory.decodeByteArray(bytearray, 0, bytearray.length); 
+0

bytearray कितना बड़ा है? वास्तव में एक बड़ी छवि है? शायद यह छवि फोन मेमोरी के लिए वास्तव में बड़ी है और यदि आप इसे वहां से पुनर्प्राप्त कर रहे हैं तो आपको इसे सर्वर-साइड पर संपीड़ित करना चाहिए। – DNax

+0

इस अच्छा स्पष्टीकरण की जांच करें http://developer.android.com/training/displaying-bitmaps/load-bitmap.html – dhams

उत्तर

0

आप शायद इस निम्न विधि का उपयोग करने के लिए है (DOC, एक ही विधि है, लेकिन विकल्प पैरामीटर के साथ):

public static Bitmap decodeByteArray (byte[] data, int offset, int length, BitmapFactory.Options opts) 

और options पैरामीटर के साथ खेलते हैं। उम्मीद है कि यह आपकी मदद करेगा =)

0

आप अपनी छवियों को लोड करने के लिए AQuery लाइब्रेरी का उपयोग करना चाह सकते हैं, इससे आपको आकार बदलने, देखने और सबसे आम स्मृति लीक से बचने में मदद मिलेगी। यह टूल यहां पाया जा सकता है: http://code.google.com/p/android-query/

+0

AQuery के साथ बाइट [] से बिटमैप कैसे परिवर्तित कर सकता है? – atasoyh

3

यहां मेरे लिए क्या काम किया गया है: फोटो एक छवि की एक स्ट्रिंग है।

byte[] imgbytes = Base64.decode(photo, Base64.DEFAULT); 
Bitmap bitmap = BitmapFactory.decodeByteArray(imgbytes, 0, 
imgbytes.length); 
imageupload.setImageBitmap(bitmap); 
4
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapbytes , 0, bitmapbytes .length); 

डीकोड बिटमैप, या अशक्त रिटर्न अगर चित्र को डीकोड नहीं हो सकता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^