我正在使用 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 类似的方式进行操作 - 用户拍摄照片并且该照片正在被立即处理)