2011-01-20 3 views
0

Mon application fonctionne correctement sur certains appareils Android, mais sur certains appareils, elle génère une erreur de mémoire insuffisante.Erreur "Mémoire insuffisante"

Voici le journal de LogCat:

http://logcat.miui-dev.com/147001

Qu'est-ce que cette activité fait est bitmaps de charge, et afficher les bitmaps par onDraw().

Qu'est-ce qui causerait cette erreur?

que suis-je en train de faire?

Am juste Maping toutes les images dans une image méthode

_bitmapCache.put (R.drawable.gb2, BitmapFactory.decodeResource ( getResources(), R.drawable.gb2));

et quand un constructeur est appelé i appeler cette méthode, tout en utilisant l'image i il suffit d'utiliser

canvas.drawBitmap (_bitmapCache.get (R.drawable.level1c1), 0, 0, NULL);

à Craw l'image

+0

Avez-vous recherché ce produit? http://stackoverflow.com/search?q=Strange+%E2%80%9COut+of+Memory%E2%80%9D+Error+android –

+0

oui, il n'a pas résolu le problème – nicky

Répondre

1

Il semble que vous demandez une image 18 meg. Vous devez redimensionner vos images. Chaque application est seulement autorisée 16-24megs d'espace tas. Je devrais voir plus de votre code pour faire d'autres suggestions, mais une image de 18 meg est vraiment trop grande et l'ImageView ne fait pas le meilleur travail de mise à l'échelle automatique des images, donc vous devez généralement faire la mise à l'échelle avant l'affichage dans mon expérience.

+0

posté mon code en question lui-même, – nicky

+0

Vous chargez tous vos bitmaps dans drawables et les stockez dans un hashmap dans votre code? –

1

Vous devez spécifier dans les options de BitmapFactory un inSampleSize qui permettra de charger directement une version réduite du bitmap.

+0

essayé, n'a pas travaillé – nicky

+0

Il le fait. Mais gérer de grandes images n'est pas un problème simple. Dans mon application EmailAlbum, j'ai dû mettre en œuvre ce http://code.google.com/p/emailalbum/source/browse/EmailAlbumAndroid/tags/REL-2_10_2/src/com/kg/emailalbum/mobile/util/BitmapLoader. Java pour charger des images dans une version réduite et les mettre en cache. –

Questions connexes