"Bitmap-grootte overschrijdt VM-budget"

Af en toe krijg ik het foutbericht "Bitmapgrootte overschrijdt VM-budget". Het gebeurt wanneer ik 20 activiteiten een voor een openmaak waarbij elk van de activiteiten een 500 x 300 PNG-afbeelding bevat. Ik had het probleem niet toen ik de afbeeldingen in mijn XML-lay-outs met Android implementeerde: background = "@ drawable/xxxxxxxx".

De fout is opgetreden toen ik de afbeeldingen in mijn Java-code implementeerde.



ImageView pic;
pic = (ImageView)findViewById(R.id.ImVpic);
pic.setImageResource(R.drawable.picture);

Hoe kan ik van die fout afkomen? Wat ontbreekt er in mijn code? Ik bedoel, het werkt echt, maar van tijd tot tijd gooit het die fout die echt vervelend is.

1

1 antwoord

Dit is een veel voorkomende vraag die je op SO ziet. Het lijkt erop dat tijdens het laden van het beeld het beschikbare geheugen laag is. Zorg ervoor dat u geen lange referenties voor afbeeldingen bijhoudt, waardoor dalvik het geheugen kan terugwinnen van ongebruikte afbeeldingen (of) objecten.

0
toegevoegd
Het gaat niet om de referentiegrootte. Als uw verwijzing naar "Object" verwijst, komt dat object niet in aanmerking voor GC.
toegevoegd de auteur kosa, de bron
@JohnD 'Referentie' betekent niet 'bestandsnaam'. Het betekent dat sommige variabelen in je programma nog steeds naar de oude textuur verwijzen, dus het kan niet door de vuilnisman worden geclaimd.
toegevoegd de auteur Tim, de bron
De referentie voor mijn afbeeldingen is eigenlijk heel kort (4 letters). Weet je zeker dat dit het probleem is? Ik bedoel, de app crasht nog steeds, ook al zijn de referenties kort.
toegevoegd de auteur JohnD, de bron
Mijn referentie verwijst niet naar Object, nietwaar?
toegevoegd de auteur JohnD, de bron
Is het misschien omdat ik bij elke activiteit dezelfde naam gebruik voor de referentie? Ik gebruik altijd dezelfde code die u hierboven kunt zien. Ik verander alleen de R.drawable.xxxxxxxxxx voor elke activiteit. Moet ik in elke activiteit andere namen geven voor de referentie? Ik bedoel zo: Activity1: pic; Activity2 pic2; Activity3 pic3; ....
toegevoegd de auteur JohnD, de bron