使用 ACTION_IMAGE_CAPTURE 从相机拍摄照片后如何跳过或避免 'retake and review' 选项
How to skip or avoid 'retake and review' option after capturing photo from camera using ACTION_IMAGE_CAPTURE
我想在点击照片时显示图像,想在我的ImageView中设置无用户select是或不是....
我已经搜索过了,我也很清楚相机应用程序本身可以让你 review/retake 图像,一旦图像被接受,activity 就会显示它.但是,我想在没有 review/retake activity 的情况下显示它......
我正在尝试这段代码
初始化
Uri mImageCaptureUri;
点击按钮
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
File file = new File(Environment.getExternalStorageDirectory(),
"tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mImageCaptureUri = Uri.fromFile(file);
try {
intent.putExtra(MediaStore.AUTHORITY, true);
intent.putExtra("return-data", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bitmap = null;
mPath = mImageCaptureUri.getPath();
System.out.println("THE PAtH:_" + mPath);
BitmapFactory.Options o2 = new BitmapFactory.Options();
bitmap = BitmapFactory.decodeFile(mPath, o2);
ivSelfie.setImageBitmap(bitmap);
}
When I am Click the Photo Than I am Take this screen to select yes or not......
But My requirement is not select review/retake task and direct set to ImageView on activity display when just click and set.....
使用方法setImageURI()
它将从 uri 获取位图并为您设置它。
是的,无论用户按下 ok
还是 cancel
,它都会设置图像天气,因为在启动 intent 时,您的文件存在于给定路径上。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_FROM_CAMERA) {
// only one line code
ivSelfie.setImageURI(mImageCaptureUri);
}
}
其实拍照确认还是很有用的。但是,如果您真的不想拥有它,则必须在您的应用程序中使用 SurfaceView 并在此处显示相机流。有如何做的例子,例如考虑检查 one.
你无法避开那个画面。原因是当您使用 new MediaStore.ACTION_IMAGE_CAPTURE
时,您使用的是不同的相机应用程序来单击图像。显示此屏幕可能是 的默认功能。根据相机应用程序,此屏幕在不同设备上会有所不同。
所以要摆脱这个,你唯一能做的就是实现你的自定义相机,而不是使用默认的相机应用程序。
根据默认相机应用程序,您不能破坏该功能。相反,您可以使用 SurfaceView 在您的应用程序中捕获图像。请看看这个 answer thread.
也许这个link会对你有所帮助。
谢谢
使用 "android.intent.extra.quickCapture" 作为您的图片意图。
// File ImagePickerModule.java#248
cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("android.intent.extra.quickCapture",true);
详情见https://github.com/react-native-community/react-native-image-picker/issues/647。
我想在点击照片时显示图像,想在我的ImageView中设置无用户select是或不是....
我已经搜索过了,我也很清楚相机应用程序本身可以让你 review/retake 图像,一旦图像被接受,activity 就会显示它.但是,我想在没有 review/retake activity 的情况下显示它......
我正在尝试这段代码
初始化
Uri mImageCaptureUri;
点击按钮
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
File file = new File(Environment.getExternalStorageDirectory(),
"tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
mImageCaptureUri = Uri.fromFile(file);
try {
intent.putExtra(MediaStore.AUTHORITY, true);
intent.putExtra("return-data", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bitmap = null;
mPath = mImageCaptureUri.getPath();
System.out.println("THE PAtH:_" + mPath);
BitmapFactory.Options o2 = new BitmapFactory.Options();
bitmap = BitmapFactory.decodeFile(mPath, o2);
ivSelfie.setImageBitmap(bitmap);
}
When I am Click the Photo Than I am Take this screen to select yes or not......
But My requirement is not select review/retake task and direct set to ImageView on activity display when just click and set.....
使用方法setImageURI()
它将从 uri 获取位图并为您设置它。
是的,无论用户按下 ok
还是 cancel
,它都会设置图像天气,因为在启动 intent 时,您的文件存在于给定路径上。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_FROM_CAMERA) {
// only one line code
ivSelfie.setImageURI(mImageCaptureUri);
}
}
其实拍照确认还是很有用的。但是,如果您真的不想拥有它,则必须在您的应用程序中使用 SurfaceView 并在此处显示相机流。有如何做的例子,例如考虑检查 one.
你无法避开那个画面。原因是当您使用 new MediaStore.ACTION_IMAGE_CAPTURE
时,您使用的是不同的相机应用程序来单击图像。显示此屏幕可能是 的默认功能。根据相机应用程序,此屏幕在不同设备上会有所不同。
所以要摆脱这个,你唯一能做的就是实现你的自定义相机,而不是使用默认的相机应用程序。
根据默认相机应用程序,您不能破坏该功能。相反,您可以使用 SurfaceView 在您的应用程序中捕获图像。请看看这个 answer thread.
也许这个link会对你有所帮助。
谢谢
使用 "android.intent.extra.quickCapture" 作为您的图片意图。
// File ImagePickerModule.java#248
cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("android.intent.extra.quickCapture",true);
详情见https://github.com/react-native-community/react-native-image-picker/issues/647。