0

我正在使用 Intent 开发基于 Android 相机的应用程序。拍摄照片后,我可以看到照片和两个按钮 - “保存”和“取消”。我想要做的是不要等待用户选择这两个按钮之一,而是开始处理这张照片,然后根据处理结果做进一步的动作。

到目前为止,我一直在这样做:

CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;

protected void startCameraActivity()
{
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );

    // the method below is my method for setting proper path for my image file
    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image

    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

    startActivityForResult( intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE );
}

当我启动我的应用程序时调用此方法。所以我用相机启动我的应用程序。然后我拍照。我可以选择“保存”或“取消”。当我选择一个时,会调用此方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            // Image captured and saved to fileUri specified in the Intent

            onPhotoTaken();    // processing...

        } else if (resultCode == RESULT_CANCELED) {
            // User cancelled the image capture
        } else {
            // Image capture failed, advise user
        }
    }
}

收到正确的 resultCode 后,我从文件中加载该图像,然后开始处理它。

现在我的问题是:如果我可以在调用 onActivityResult 方法之前获得该图像?单击这些按钮之一后调用它。

(我想以与 google google 类似的方式进行操作 - 用户拍摄照片并且该照片正在被立即处理)

4

1 回答 1

0

您将需要实现自己的拍照活动,类似于(包括页面末尾的源代码)。

与使用 simple 相比,直接设置它需要一些时间Intent,但之后您可以直接访问所有相机功能,包括相机图像,甚至在调用活动可用之前。

于 2012-04-22T03:56:03.077 回答