2009-06-26 15 views
2

私はカメラから画像をキャプチャするアクティビティを起動します。キャプチャした画像のURLを取得する方法は?

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

あなたはどのようにキャプチャ画像のURIを取得する方法を教えていただけますか?

答えて

1

// 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

Android 2.2の携帯電話でこれを試したところ、 'data.getData()'はnullを返します。 –

2

私はAndroidが初めてですが、インテントに追加情報を追加する必要があると思います。 ACTION_IMAGE_CAPTUREのドキュメントは言う:

呼び出し側は、このイメージが書き込まれる場所を制御するための追加EXTRA_OUTPUTを渡すことができます。 EXTRA_OUTPUTが存在しない場合は、余分なフィールドに小さな画像がビットマップオブジェクトとして返されます。これは、小さな画像しか必要としないアプリケーションに役立ちます。 EXTRA_OUTPUTが存在する場合、フルサイズの画像はEXTRA_OUTPUTのUri値に書き込まれます。

だから、私はあなたがこの行を追加することができるはずだと思う:

intent.putExtra(MediaStore.EXTRA_OUTPUT、Uri.fromFile(新しいファイル( "MyImageCapture")));

そして、あなたはonActivityResultのURIからそれを得ることができるはずです。

しかし、私はこれをテストしていません。私はあなたを迷わせていないことを願っています。

+0

を行うのと同じカメラから撮影された画像を取得するために、私はこれを試してみました:\t i.putExtra(MediaStore.EXTRA_OUTPUT、Uri.fromFile(新しいファイル(」 MyImageCapture ")))); i.putExtra( "outputFormat"、Bitmap.CompressFormat.PNG.name()); \t \t \t \t \t \t \t startActivityForResult(I、PICK_ICON_FROM_CAMERA_ID)。 しかし、私のonActivityResult()は呼び出されませんでした。それが起こったのかどうか教えていただけますか? – n179911

関連する問題