J'ai 2 ImageView
sur ma mise en page d'accueil et leur contenu provient des images placées sur la carte SD comme indiqué dans ci-dessous extrait de code:OutOfMemoryError lors de l'utilisation 2 bitmaps
try {
String tempPath1 = Environment.getExternalStorageDirectory()
+ File.separator + "Clipping_Pictures" + File.separator
+ "06-05-2013_02-06-09pm.png";
File f = new File(tempPath1);
Bitmap b = null, b2 = null;
b = BitmapFactory.decodeFile(f.getPath());
if (f.exists()) {
ivClip1.setImageBitmap(b);//ivClip1 is ImageView
}
tempPath1 = Environment.getExternalStorageDirectory()
+ File.separator + "Clipping_Pictures" + File.separator
+ "06-05-2013_02-06-33pm.png";
f = new File(tempPath1);
b2 = BitmapFactory.decodeFile(f.getPath());
if (f.exists()) {
ivClip2.setImageBitmap(b2);
}
} catch (Exception e) {
e.printStackTrace();
}
Quand je charge l'application pour la 1ère fois, il affiche les deux images sur les images respectives. Mais 2ème lancement sur-salles, application se bloque à l'exception suivante:
OutOfMemoryError: la taille du bitmap dépasse le budget VM
Notez que deux images de ressources sont .png et de la taille ~ 850KB chacun qui devrait être bien J'imagine.
Il existe des threads similaires sur SO et sur Internet et j'ai essayé certaines de leurs solutions suggérées, mais aucune ne semble fonctionner.
Toute aide appréciée.
« Notez que deux images de ressources sont .png et de la taille ~ 850kb 'ça n'a pas d'importance. Quelle est la largeur et la hauteur de votre bitmap? – Blackbelt
C'est environ. 2000x2600 – GAMA
chaque bitmap nécessitera environ 20 Mo de mémoire. Un bitmap nécessitera largeur * hauteur * 4 octets de mémoire – Blackbelt