使用 ACTION_IMAGE_CAPTURE 从相机拍摄照片后如何跳过或避免 'retake and review' 选项

How to skip or avoid 'retake and review' option after capturing photo from camera using ACTION_IMAGE_CAPTURE

我想在点击照片时显示图像,想在我的ImageView中设置无用户select是或不是....

我已经搜索过了,我也很清楚相机应用程序本身可以让你 review/retake 图像,一旦图像被接受,activity 就会显示它.但是,我想在没有 review/retake activity 的情况下显示它......

我正在尝试这段代码

初始化

  Uri mImageCaptureUri;

点击按钮

  Intent intent      = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    File file        = new File(Environment.getExternalStorageDirectory(),
            "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
    mImageCaptureUri = Uri.fromFile(file);

    try {

        intent.putExtra(MediaStore.AUTHORITY, true);
        intent.putExtra("return-data", true);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
        startActivityForResult(intent, PICK_FROM_CAMERA);
    } catch (Exception e) {
        e.printStackTrace();
    }

onActivityResult

  @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

        Bitmap bitmap = null;


        mPath = mImageCaptureUri.getPath();

        System.out.println("THE PAtH:_" + mPath);

        BitmapFactory.Options o2 = new BitmapFactory.Options();
        bitmap = BitmapFactory.decodeFile(mPath, o2);
        ivSelfie.setImageBitmap(bitmap);

    
}

When I am Click the Photo Than I am Take this screen to select yes or not......

But My requirement is not select review/retake task and direct set to ImageView on activity display when just click and set.....

使用方法setImageURI() 它将从 uri 获取位图并为您设置它。

是的,无论用户按下 ok 还是 cancel,它都会设置图像天气,因为在启动 intent 时,您的文件存在于给定路径上。

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == PICK_FROM_CAMERA) {
        // only one line code
        ivSelfie.setImageURI(mImageCaptureUri);
  }   
}

其实拍照确认还是很有用的。但是,如果您真的不想拥有它,则必须在您的应用程序中使用 SurfaceView 并在此处显示相机流。有如何做的例子,例如考虑检查 one.

你无法避开那个画面。原因是当您使用 new MediaStore.ACTION_IMAGE_CAPTURE 时,您使用的是不同的相机应用程序来单击图像。显示此屏幕可能是 的默认功能。根据相机应用程序,此屏幕在不同设备上会有所不同。

所以要摆脱这个,你唯一能做的就是实现你的自定义相机,而不是使用默认的相机应用程序。

根据默认相机应用程序,您不能破坏该功能。相反,您可以使用 SurfaceView 在您的应用程序中捕获图像。请看看这个 answer thread.

也许这个link会对你有所帮助。

谢谢

使用 "android.intent.extra.quickCapture" 作为您的图片意图。

// File ImagePickerModule.java#248
cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("android.intent.extra.quickCapture",true);

详情见https://github.com/react-native-community/react-native-image-picker/issues/647