android - OutOfMemoryError in getView() with progressbar -


मेरे पास एक ListView है जिसमें प्रत्येक आइटम वाले ProgressBar और एक ImageButton । लेकिन कुछ उपकरणों में, OutOfMemoryError getView () सूची के एडेप्टर के कार्यान्वयन में होता है। यहां बताया गया है।

जिस रेखा में त्रुटि होती है वह नीचे दी गई है:

  @ ओवरराइड सार्वजनिक देखें getView (अंतिम इंट की स्थिति, कन्वर्टव्यू देखें, व्यू समूह मूल) {अंतिम दृश्यहोल्डर धारक ; If (convertView! = Null) {धारक = (देखेंहोल्डर) कनवर्टव्यू.गेटटैग (); } और {यदि (mDrawable == शून्य) mDrawable = mContext.getResources ()। GetDrawable (R.drawable.progress); लेआउटइफलटर इन्फ्लेटर = ((गतिविधि) mContext) .getLayoutInflater (); कन्वर्टव्यू = इन्फ़्लिएरइनफ्लैट (आर.लेआउट। टेस्ट_लिस्ट_आइटम, अभिभावक, गलत); // दुर्घटना यहाँ होती है धारक = नया देखेंहोल्डर (कन्वर्टव्यू); holder.progressBarEpisodes.setProgressDrawable (mDrawable); } // सत्र का नाम दिखाएं रिफ्रेश प्रगति (स्थिति, धारक); ...} निजी शून्य रिफ्रेश प्रगति (इंट की स्थिति, देखेंहोल्डर धारक) {धारक। प्रोपरबियर एपिसोड्ससेट मैक्स (पूर्णांक.पर्सिएन्ट (आइटम। प्राप्त करें (स्थिति) .टेटलेट ())); holder.progressBarEpisodes.setProgress (Integer.parseInt (items.get (स्थिति) .getProgress ())); }   

सूची आइटम के लिए मेरा लेआउट xml निम्नानुसार है:

  & lt; LinearLayout xmlns: android = "http://schemas.android.com/ Apk / res / android "xmlns: app =" http://schemas.android.com/apk/res-auto "एंड्रॉइड: अभिविन्यास =" क्षैतिज "एंड्रॉइड: layout_width =" match_parent "एंड्रॉइड: layout_height =" wrap_content "एंड्रॉइड: पृष्ठभूमि = "@ ड्रॉएबल / सूची_आयटम_सेलेटर" एंड्रॉइड: paddingLeft = "16dp" एंड्रॉइड: paddingRight = "8dp" & gt; & LT; LinearLayout एंड्रॉयड: layout_width = "0dp" एंड्रॉयड: layout_weight = "1" एंड्रॉयड: layout_height = "match_parent" एंड्रॉयड: गुरुत्वाकर्षण = "center_vertical" एंड्रॉयड: अभिविन्यास = "ऊर्ध्वाधर" एंड्रॉयड: paddingTop = "12dp" एंड्रॉयड: paddingBottom = " 12 डीपी "एंड्रॉइड: पैडिंगराइट =" 16 डीपी "& gt; .... & LT; ProgressBar एंड्रॉयड: "एंड्रॉयड: attr / progressBarStyleHorizontal" id = "@ + id / Progressbar" शैली = एंड्रॉयड: layout_width = "match_parent" एंड्रॉयड: layout_height = "4dp" एंड्रॉयड: layout_marginTop = "8dp" एंड्रॉयड : लेआउट_मर्जिनबॉटम = "8 डीपी" एंड्रॉइड: प्रगति = "50" / & gt; & Lt; / LinearLayout & gt; & LT; ImageButton एंड्रॉयड: आईडी = "@ + id / ImageButton" एंड्रॉयड: layout_width = "wrap_content" एंड्रॉयड: layout_height = "match_parent" शैली = "@ शैली / EpisodeActionButton" एंड्रॉयड: फ़ोकस करने योग्य = "false" एंड्रॉयड: पृष्ठभूमि = "@ drawable / List_item_selector_no_alpha "एंड्रॉइड: progressDrawable =" @ ड्रॉएबल / प्रगति "/ & gt; & Lt; / LinearLayout & gt;   

इसके अलावा, मैंने इस तरह की प्रगति बार शैली को अनुकूलित किया है:

  & lt; परत-सूची xmlns: android = "http: // स्कीमा Android.com/apk/res/android "& gt; & Lt; आइटम एंड्रॉइड: id = "@ android: id / background" & gt; & LT; आकार & gt; & Lt; ठोस एंड्रॉइड: रंग = "@ रंग / ग्रे_500" / & gt; & Lt; / आकार & gt; & Lt; / मद & gt; & Lt; आइटम एंड्रॉइड: id = "@ एंड्रॉइड: आईडी / प्रगति" & gt; & LT; क्लिप & gt; & LT; आकार & gt; & Lt; ठोस एंड्रॉइड: रंग = "@ रंग / माध्यमिक_500" / & gt; & Lt; / आकार & gt; & Lt; / क्लिप & gt; & Lt; / मद & gt; & Lt; / परत-सूची & gt;   

क्या आप इस दुर्घटना की समस्या के हल से मेरी मदद कर सकते हैं?

मैं अपने स्टैक ट्रेस के इस हिस्से में दिखेगा:

की वजह से: android.graphics.BitmapFactory.decodeStream पर android.graphics.BitmapFactory.nativeDecodeAsset (BitmapFactory.java) पर java.lang.OutOfMemoryError android.graphics.BitmapFactory.decodeResourceStream पर (BitmapFactory.java:609) android.graphics.drawable.Drawable.createFromResourceStream पर (BitmapFactory.java:444) (Drawable.java:840)

यह मेरे लिए लग रहा है हर बार जब आप दृश्य को फुलाते हुए देखते हैं तो वह इस बिटमैप का एक नया संस्करण प्राप्त करने का प्रयास कर रहा है जिसे आप दिखा रहे हैं। मेरे सिफारिश प्रोग्राम के कि बिटमैप सेट है, और पर एक ही बिटमैप का पुन: उपयोग, ताकि आप एक ही समय में स्मृति में एक से अधिक संस्करण लोड हो रहा है नहीं कर रहे हैं करने के लिए किया जाएगा।

आप कैसे इन लोगों में से कई हैं ऊपर तक भरना? यदि आप कई अलग-अलग छवियों को लोड करना चाहते हैं तो उन्हें कैशिंग करने का प्रयास करना चाहिए:

पुन: उपयोग, कैश और संसाधनों को कुशलता से रिलीज करने का प्रयास करें।

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -