2011-06-13 16 views
5

पर सेट करें, मैं एक 1 एमबी छवि फ़ाइल डाउनलोड करने की कोशिश कर रहा हूं और फिर छविदृश्य को पॉप्युलेट करने के लिए बिटमैप में सहेज रहा हूं। लेकिन त्रुटिएंड्रॉइड 1 एमबी छवि फ़ाइल कैसे डाउनलोड करें और ImageView

06-13 13:39:48.149: ERROR/AndroidRuntime(1782): 
java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

मैं एक बड़ी छवि डाउनलोड कर सकते हैं कैसे पता चलता है?

+0

डुप्लिकेट: http://stackoverflow.com/questions/1949066/java- लैंग-आउटोफमेमोरीर-बिटमैप-साइज-एक्सेड्स-वीएम-बजट-एंड्रॉइड – razlebe

उत्तर

3

मैं एक ही मुद्दे से गुजर रहा था। डाउनलोड किए गए बिटमैप को अपने ImageView पर सेट करने से पहले, आपको अपने ImageView की चौड़ाई और ऊंचाई के अनुसार अपने बिटमैप को संपीड़ित करना होगा।

आप इस प्रकार का छोटा बिटमैप बनाने के लिए,

bm1=Bitmap.createScaledBitmap(bm, 300, 300,true); 
imgView.setImageBitmap(bm1); 

या संपीड़ित इस तरह अपने बिटमैप,

  OutputStream fOut = null; 
         File file = new File(strDirectoy,imgname); 
          fOut = new FileOutputStream(file); 

         bm1.compress(Bitmap.CompressFormat.JPEG, 85, fOut); 
          fOut.flush(); 
          fOut.close(); 

       MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName()); 
+0

बीएम 1 = बिटमैप.क्रेटस्केल्ड बिटमैप (बीएम, 300, 300, सच); imgView.setImageBitmap (बीएम 1); कभी-कभी यह काम करता है और कभी-कभी यह काम नहीं कर रहा है। क्या तुम मुझे बता सकते हो क्यों? – Jyosna

+0

यदि मैंने दी गई अगली विधि का प्रयास नहीं किया है। यह आपकी छवि को संपीड़ित और स्टोर करेगा। उसके बाद यूरी का उपयोग करके छविदृश्य के लिए छवि सेट करने का प्रयास करें। –

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