pat Posted April 22, 2011 Share Posted April 22, 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 ;) Link to comment Share on other sites More sharing options...
raptor079 Posted May 26, 2011 Share Posted May 26, 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 Link to comment Share on other sites More sharing options...
raptor079 Posted August 8, 2011 Share Posted August 8, 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 ;) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.