【问题标题】:Get image from camera without pressing ok button after camera click in android在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);

        }
    }

};

【问题讨论】:

    标签: android android-camera android-camera-intent


    【解决方案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);
      }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-21
        • 2011-08-12
        • 1970-01-01
        • 2016-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多