2009-06-26 74 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。 – 2011-03-13 07:53:41

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 2009-06-26 22:47:32

相关问题