在android中单击相机后,无需按确定按钮即可从相机获取图像

Posted

技术标签:

【中文标题】在android中单击相机后,无需按确定按钮即可从相机获取图像【英文标题】:Get image from camera without pressing ok button after camera click in android 【发布时间】:2015-09-16 19:25:39 【问题描述】:

我编写了从相机捕获图像的代码,它工作正常, 捕获图像后,它要求在相机中单击“确定”,但我想在不单击“确定”按钮的情况下获取图像。我的代码如下,我不知道不点击确定按钮就可以获取图像,所以请帮助我。

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);

        
    

;

【问题讨论】:

【参考方案1】:

在按钮单击侦听器上编写以下代码

 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);
        
    );

【讨论】:

【参考方案2】:

为了实现这一点,我们应该通知相机意图启用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);

注意:我从 *** 中了解到,很少有人说某些设备不支持这种模式。而且我不确定这些是什么设备。迄今为止,我已经在 API 级别 21 到 28 的不同品牌的设备上进行了测试,到目前为止,这一切都对我有用。

【讨论】:

以上是关于在android中单击相机后,无需按确定按钮即可从相机获取图像的主要内容,如果未能解决你的问题,请参考以下文章

选择日期后,日期选择器应在 android 中关闭,而无需单击确定按钮

从相机捕获图像并在活动中显示

从相机捕获图像并在活动中显示

故事板无需单击按钮即可应用推送(模态,推送,自定义)

无需重启即可释放 Android 相机?

Android:单击按钮时切换相机