在摄像头点击android后,无需按下确定按钮即可从摄像头获取图像

时间:2015-06-30 06:09:03

标签: android camera android-camera

我做了从相机捕获图像的代码,它工作正常, 捕获图像后,它要求在相机中单击确定,但我想获得图像而不点击确定按钮。我的代码如下所示,我没有想法获取图像而不点击确定按钮所以请帮助我。

button_camera.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            startActivityForResult(intent, 0);
        }
    });



protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
    case 0:
        if (resultCode == RESULT_OK) {


            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String filePath = cursor.getString(columnIndex);
            cursor.close();

            Log.e("PATH", filePath+"");
            Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);

        }
    }

};

2 个答案:

答案 0 :(得分:0)

在按钮上单击listerner,编写以下代码

 cameraBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
            startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
        }
    });

答案 1 :(得分:0)

要实现这一点,我们应该在调用相机时通知相机意图启用quick capture模式。代码下方:

private static final int REQUEST_IMAGE_CAPTURE = 1;

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra("android.intent.extra.quickCapture", true); // enables single click image capture
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}

注意::我从stackoverflow上了解到,其他一些站点的人说某些设备不支持此模式。而且我不确定这些设备是什么。到目前为止,我已经在API级别为21到28的不同品牌的设备上进行了测试,到目前为止,这些设备都对我有用。