在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中单击相机后,无需按确定按钮即可从相机获取图像的主要内容,如果未能解决你的问题,请参考以下文章