2011-08-02 2 views

Répondre

0

Le problème est que la taille de votre bitmap est trop grand que la machine virtuelle peut gérer. Par exemple, à partir de votre code, je peux voir que vous essayez de coller une image dans imageView que vous capturez en utilisant Camera. Donc, normalement les images de la caméra seront trop grandes, ce qui augmentera évidemment cette erreur. Comme d'autres l'ont suggéré, vous devez compresser votre image soit en l'échantillonnant, soit en la convertissant en une résolution plus petite. Par exemple, si votre imageView a une largeur et une hauteur de 100 x 100, vous pouvez créer un bitmap mis à l'échelle afin que votre imageView soit remplie exactement. Vous pouvez le faire pour cela,

Bitmap newImage = Bitmap.createScaledBitmap(bm, 350, 300,true); 

Et vous devez recycler votre bitmap et null votre bitmap comme celui-ci,

Bitmap bmap.recycle(); 
Bitmap bmap=null; 
+0

Merci! Je ne comprends vraiment pas pourquoi android GC ne traite pas Bitmap comme n'importe quel autre objet ... – VinceFR

0

je doute vraiment que vous devez utiliser bitmap.recycle() si vous Null vos références, ce qui permet GC (mais s'il vous plaît me prouver le contraire).

Je dirais qu'il est plus probable que vos bitmaps sont trop grands, possibly aggravated by long lived Context references ou quelque chose comme ça.

Questions connexes