Je veux juste ouvrir une application de caméra native à partir de mon application pour capturer une photo et la définir comme image d'arrière-plan de mon écran, puis la faire tourner en cliquant sur le bouton. La photo tourne n nombre de fois si elle est prise avec un appareil photo 3MP. Si je règle la résolution de l'appareil photo à 5MP ou plus, l'application se ferme en appuyant sur le bouton 5 fois (la photo tourne 4 fois).Gestion de gros bitmap en android
Bitmap rotatedBitmap = null;
int curAngle = 0;
private Bitmap rotateImageBitmap(Bitmap capturedPhotoBitmap) {
if(rotatedBitmap != null )
{
rotatedBitmap = null;
}
Matrix matrix = new Matrix();
curAngle = (curAngle + 90) % 360;
matrix.postRotate(curAngle);
rotatedBitmap = Bitmap.createBitmap(capturedPhotoBitmap, 0, 0, capturedPhotoBitmap.getWidth(), capturedPhotoBitmap.getHeight(), matrix, true);
return rotatedBitmap;
}
Ceci est du Guide du développeur ....
1. Les appareils mobiles ont généralement limité les ressources système. Les appareils Android peuvent avoir jusqu'à 16 Mo de mémoire disponible pour une seule application.
2. Les bitmaps occupent beaucoup de mémoire, en particulier pour les images riches comme les photographies. Par exemple, l'appareil photo sur le Galaxy Nexus prend des photos jusqu'à 2592x1936 pixels (5 mégapixels). Si la configuration bitmap utilisée est ARGB_8888 (la configuration par défaut à partir d'Android 2.3), le chargement de cette image en mémoire prend environ 19 Mo de mémoire (2592 * 1936 * 4 octets), épuisant immédiatement la limite par application sur certains périphériques.
La plupart des téléphones ont de nos jours des caméras de 8 mégapixels ou plus. donc les images seront grandes. Comment puis-je faire pivoter la photo «n» nombre de fois sans déranger la résolution de l'appareil photo. Ai-je besoin de le compresser? Quel est le meilleur moyen? Aidez-moi, s'il vous plaît.