【问题标题】:How to get the URL of the captured image?如何获取捕获图像的 URL?
【发布时间】: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吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    我是 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 获取它。

    但我还没有测试过这个。希望我没有让你误入歧途。

    【讨论】:

    • 我试过这个: i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File ("MyImageCapture")) ); i.putExtra("outputFormat", Bitmap.CompressFormat.PNG.name()); startActivityForResult(i, PICK_ICON_FROM_CAMERA_ID);但是我的 onActivityResult() 从未被调用过。你能告诉我发生的任何想法吗?
    【解决方案2】:

    要获取刚刚从相机拍摄的图像,您需要执行以下操作

    // 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);
        }
    }
    

    【讨论】:

    • 在我的 Android 2.2 手机上试过这个,data.getData() 返回 null。
    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 2012-05-08
    • 2014-11-01
    • 2012-08-15
    • 1970-01-01
    • 2010-11-09
    • 2014-01-18
    • 2014-01-20
    相关资源
    最近更新 更多