pat Posté(e) 22 avril 2011 Share Posté(e) 22 avril 2011 Salut à tous, Je developpe une application de partage de photo et je fais face à un problème sur certains terminaux. Lors de la prise de photo je fais apparaitre un thumbnail de celle ci dans une popupWindow à l'utilisateur pour savoir si elle lui convient ou si il veut en prendre une autre. Tout ce passe bien sur N1, galaxy S, ou desire. Mais certain utilisateurs d'appareil a petite résolution (samsung intercept) ou grande (desire HD) me rapporte ce 'bitmap size exceeds VM budget' qui empeche la popupWindow d'apparaitre. Qq1 aurait il a première vue comme ca une piste? Pour info le bitmap affiché fait 640x480 et est affiché dans une popup d'environ 400x 300 et dimensionné automatiquement via le layout fill_parent Merci ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
raptor079 Posté(e) 26 mai 2011 Share Posté(e) 26 mai 2011 de la même facon, je réalise une application comportant plein d'image pour mon interface. Et au bout d'un moment, j'ai eu ce fameux "... Bitmap Size exceeds VM budget" sa fait maintenant 2 jour que je cherche a trouver une solution. entre les Bitmap.recycle() , les Garbage Collector et tout ça, toujours pas de solution viable. Je vais alors me résigner à réduire la qualité de l'interface pour ganger en espace mémoire. @ plus Lien vers le commentaire Partager sur d’autres sites More sharing options...
raptor079 Posté(e) 8 août 2011 Share Posté(e) 8 août 2011 Je vais alors me résigner à réduire la qualité de l'interface pour gagner en espace mémoire. Bonjour a tous, je reviens après quelque temps car je viens de trouver une parade pour éviter le dépassement mémoire: Ce qu'il faut c'est surtout pas utiliser le fameux BitmapFatory.decodeResource.... car c'est lui qui consomme le VM budget ( on est limité en gros à une image de 5000*5000 px Un exemple: Je souhaitais copier une image depuis les ressources ( R.drawable.image) vers la mémoire du téléphone: ma solution qui provoquait une OOM error : Faire un BitmapFatory.decodeResource(R.drawable.image); ( on peux solutionner en réduisant la qualité par des trucs du genre options.insampleSize = 2.... mais réduire la qualité n'étais pas une options pour moi) j'ai donc réalisé a la place un Input Stream: mon code a la place du BitmapFactory : x = this.getResources().openRawRessourceFd(R.drawable.image).createInputStream(); image = BimapFactory.decodeStream(x); et la, bizarrement ça fonctionne niquel !!!! pour résumer : il faut créer un Stream du fichier image ! me contacter pour plus d'infos, cela servira peut être à certains ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.