【发布时间】:2014-03-22 11:03:36
【问题描述】:
我启动了一项活动以从相机中捕捉图片:
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE, null);
i.putExtra("return-data", true);
startActivityForResult(i, PICK_FROM_CAMERA);
你能告诉我如何获取抓图的URI吗?
【问题讨论】:
我启动了一项活动以从相机中捕捉图片:
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE, null);
i.putExtra("return-data", true);
startActivityForResult(i, PICK_FROM_CAMERA);
你能告诉我如何获取抓图的URI吗?
【问题讨论】:
我是 Android 新手,但我相信您必须在 Intent 中添加一些额外信息。 ACTION_IMAGE_CAPTURE 文档说:
调用者可能会传递一个额外的 EXTRA_OUTPUT 来控制此图像的写入位置。如果 EXTRA_OUTPUT 不存在,则在额外字段中将小尺寸图像作为位图对象返回。这对于只需要小图像的应用程序很有用。如果存在 EXTRA_OUTPUT,则将全尺寸图像写入 EXTRA_OUTPUT 的 Uri 值。
所以,我认为你应该可以在这一行添加:
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File ("MyImageCapture")));
然后您应该能够从 onActivityResult 中的 URI 获取它。
但我还没有测试过这个。希望我没有让你误入歧途。
【讨论】:
要获取刚刚从相机拍摄的图像,您需要执行以下操作
// 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);
}
}
【讨论】:
data.getData() 返回 null。