首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从onActivityResult(int requestCode,int resultCode,意图数据)获得结果?

问如何从onActivityResult(int requestCode,int resultCode,意图数据)获得结果?
EN

Stack Overflow用户
提问于 2013-03-21 14:31:19
回答 2查看 235关注 0票数 0

我正在做一个Android项目,允许用户用相机拍照。

我的方法如下所示:

代码语言:javascript
复制
private void takePicture(){
        Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(camera, 1337);
    }

在我的onActivityResult中,我拍摄了这张照片,并将它存储在我的SdCard中。我试图修改我的takePicture()函数以返回图片的路径(字符串而不是空)。

我已经知道,来自java.io.File的java.io.File()允许我这样做。

因此,我的问题是:如何修改我的函数以返回图片的路径?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-21 14:33:39

takePicture将无法返回路径,因为它会在您的意图完成之前返回。您需要使用onActivityResult内部的路径来做一些事情

票数 1
EN

Stack Overflow用户

发布于 2013-03-21 14:35:46

这里是在pictureCallback中获取捕获和存储图像的路径的代码

在这个代码中,mFilePath是保存图像路径的字符串.

代码语言:javascript
复制
PictureCallback mPicture = new PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            File pictureFile = getOutputMediaFile();
            if (pictureFile == null) {
                return;
            }
            try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();

                String mFilePath = pictureFile.getAbsolutePath(); 
            } catch (FileNotFoundException e) {

            } catch (IOException e) {
            }
        }
    };

    private static File getOutputMediaFile() {
        File mediaStorageDir = new File(
                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyCameraApp");
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d("MyCameraApp", "failed to create directory");
                return null;
            }
        }
        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");

        return mediaFile;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15550357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档