我做了从相机捕获图像的代码,它工作正常, 捕获图像后,它要求在相机中单击确定,但我想获得图像而不点击确定按钮。我的代码如下所示,我没有想法获取图像而不点击确定按钮所以请帮助我。
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);
}
}
};
答案 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的不同品牌的设备上进行了测试,到目前为止,这些设备都对我有用。