2009-06-26 9 views
2

Ich starte eine Aktivität ein Bild von der Kamera zu erfassen:Wie erhalte ich die URL des aufgenommenen Bildes?

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE, null); 
i.putExtra("return-data", true); 
startActivityForResult(i, PICK_FROM_CAMERA); 

Können Sie mir bitte sagen, wie die URI des Capture-Bild zu bekommen?

Antwort

1

Um das Bild zu bekommen, die gerade von der Kamera aufgenommen wurde, um Ihnen die folgenden

// Call to take the picture 
startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE"), PICK_FROM_CAMERA); 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == PICK_FROM_CAMERA) 
    { 
     Uri uri = data.getData(); 
      // set the imageview image via uri 
      _previewImage.setImageURI(uri); 
    } 
} 
+6

Versucht dies auf meinem Android 2.2 Telefon und 'data.getData()' gibt null zurück. –

2

Ich bin neu in Android, aber ich glaube, Sie müssen einige zusätzliche Informationen zum Intent hinzufügen. Die ACTION_IMAGE_CAPTURE Dokumentation sagt:

Der Anrufer eine zusätzliche EXTRA_OUTPUT passieren kann zu kontrollieren, wo das Bild geschrieben werden. Wenn EXTRA_OUTPUT nicht vorhanden ist, wird ein kleines Bild als Bitmap-Objekt im zusätzlichen Feld zurückgegeben. Dies ist nützlich für Anwendungen, die nur ein kleines Bild benötigen. Wenn EXTRA_OUTPUT vorhanden ist, wird das Bild in voller Größe in den URI-Wert von EXTRA_OUTPUT geschrieben.

Also, ich glaube, Sie sollten in dieser Zeile hinzufügen können:

intent.putExtra (MediaStore.EXTRA_OUTPUT, Uri.fromFile (neue Datei ("MyImageCapture")));

Und dann sollten Sie in der Lage sein, es aus dem URI in onActivityResult zu bekommen.

Aber ich habe das nicht getestet. Hoffe, ich habe dich nicht in die Irre geführt.

+0

ich diese haben versucht, tun würde: \t i.putExtra (MediaStore.EXTRA_OUTPUT, Uri.fromFile (neue Datei (“ MyImageCapture "))); i.putExtra ("outputFormat", Bitmap.CompressFormat.PNG.name()); \t \t \t \t \t \t \t startActivityForResult (i, PICK_ICON_FROM_CAMERA_ID); Aber mein onActivityResult() wurde nie aufgerufen. Kannst du mir bitte eine Idee dafür erzählen? – n179911

Verwandte Themen