2010-02-22 15 views
35

Si vous souhaitez utiliser l'activité de l'appareil photo intégré qui utilise la caméra Android native, procédez comme suit.Utilisation de l'activité de l'appareil photo dans Android

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     this.startActivityForResult(camera, PICTURE_RESULT); 

Vous souhaitez récupérer les images de la caméra astucieuse que vous avez affichée - mais comment?

+1

Eh bien, ma question est: qu'est-ce que PICTURE_RESULT? –

+2

PICTURE_RESULT est une constante auto-définie. La valeur que vous passez à startActivityResult() en tant que requestCode sera la même que celle qui est passée à onActivityResult() lorsque votre intention est terminée afin que vous sachiez quel Intent retourne le résultat. – jcmcbeth

Répondre

23

Si vous voulez récupérer l'image dans toute sa splendeur, passez un uri à l'intention dans le supplément EXTRA_OUTPUT. Si vous êtes satisfait d'un bitmap plutôt petit (et que vous devriez l'être), appelez l'intention normalement.

Maintenant, vous avez deux options, face à la uri de l'image qui est renvoyée dans le EXTRA_OUTPUT supplémentaire, ou procédez comme suit dans votre méthode de onActivityResult:

if (requestCode == PICTURE_RESULT) // 
      if (resultCode == Activity.RESULT_OK) { 
       // Display image received on the view 
       Bundle b = data.getExtras(); // Kept as a Bundle to check for other things in my actual code 
       Bitmap pic = (Bitmap) b.get("data"); 

       if (pic != null) { // Display your image in an ImageView in your layout (if you want to test it) 
        pictureHolder = (ImageView) this.findViewById(R.id.IMAGE); 
        pictureHolder.setImageBitmap(pic); 
        pictureHolder.invalidate(); 
       } 
      } 
      else if (resultCode == Activity.RESULT_CANCELED) {...} 
    } 

Et là vous allez!

+2

merci slrobert cela m'a beaucoup aidé. Tant d'autres tutoriels ont expliqué l'implémentation de la fonctionnalité de la caméra à partir de zéro plutôt que de simplement déclencher un 'ActivityForResult' et que l'activité de la caméra par défaut gère les choses! – wired00