augmenter la mémoire allouée à l'application
J'essaie d'afficher les images prises par la caméra et de les afficher dans l'application. Lorsque je prends des images à faible résolution (disons 100 ko en taille), je n'ai pas de problèmes avec le commutateur d'affichage bitmap, par contre quand je les prends en haute résolution (1,5 MO), l'application se bloque à l'exception
Error java.lang.OutOfMemoryError.
il arrive à être sur mon smartphone (Samsung Galaxy SII, SIII, Galaxy) est sur toutes les étagères.
Pour l'instant j'ai résolu manuellement par l'abaissement de la qualité et de la taille des photos, mais, compte tenu de l'évolution de caméras avec l'augmentation de la résolution, ce problème est susceptible de se produire plus souvent.
Il n'est pas une solution permanente pour augmenter la mémoire allouée à mon application pour Android sans intervention manuelle sur l'appareil et dans le code?
Les Images sont stockées au format bitmap
//image creation
Uri domuri1
ContentValues cv = new ContentValues();
cv.remove("101");
domuri1 = getContentResolver().insert(Media.EXTERNAL_CONTENT _URI, cv);
File domthumb1 = new File(domuri1.toString(), fileName1);
//increment photo apparate
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, domuri1);
startActivityForResult(intent, 100);
//images save
ContentResolver cr = getContentResolver();
bitmap1 = MediaStore.Images.Media.getBitmap(cr, domuri1 );
imageView.setImageBitmap(bitmap1);
OriginalL'auteur vetic | 2012-07-19
Vous devez vous connecter pour publier un commentaire.
La valeur par défaut valeur de la mémoire pour une normale de l'App est de 16 mo et Vous pouvez utiliser
android:largeHeap="true"
(ce qui peut augmenter la mémoire jusqu'à 64 MO) dans votre manifiest fichier à l'intérieur de laapplicattion
tag. Vous pouvez obtenir les valeurs de la mémoire attribué parActivityManager.getMemoryClass() et ActivityManager.getLargeMemoryClass().
Même si vous demandez
largeHeap
android uniquement attribuer plus de mémoire si à tous les besoins de votre application.qui version de l'API que vous ciblez ?
j'ai testé avec d'api 8 et après je l'ai testé avec l'api 11 et android 3.0
est-il un autre moyen d'augmenter la mémoire? mon application doit allouer ~350 MO. est-ce possible?
OriginalL'auteur Amit