android - 如何跳过由 androids CAMERA_ACTIVITY 创建的活动?
问题描述
我正在使用 androids 默认相机捕获,然后使用裁剪库拍摄照片,然后将其裁剪为正方形以显示在下一个布局上,图片存储在设备上,并在数据库中创建记录。
Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image_file));
startActivityForResult(camera_intent, CAM_REQUEST);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==2 || requestCode == 6709) {
if (resultCode == RESULT_CANCELED) {
} else if (resultCode == RESULT_OK) {
//Crop.pickImage(this);
if (requestCode == Crop.REQUEST_CROP && resultCode == RESULT_OK) {
//doSomethingWithCroppedImage(outputUri);
setResult(resultCode);
} else {
File cropme = new File(tempPicture[4]);
if (Build.VERSION.SDK_INT >= 24) {
try {
Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure");
m.invoke(null);
} catch (Exception e) {
e.printStackTrace();
}
}
new Crop(Uri.fromFile(cropme)).output(Uri.fromFile(cropme)).asSquare().start(this);
}
}
}
问题是有一个如下所示的图片确认页面是多余的,如果我能够将其删除,它将为用户节省大量时间。
如何在线编辑默认相机捕捉活动或使用其他相机模板?
我想让流程尽可能高效,所以如果有更好的方法让我知道。
解决方案
问题是有一个如下所示的图片确认页面是多余的,如果我能够将其删除,它将为用户节省大量时间。
不要使用ACTION_IMAGE_CAPTURE
. 直接使用相机 API(例如 , android.hardware.Camera
)android.hardware.camera2.*
或通过包装它们的库(例如 CameraKit-Android、Fotoapparat)。
我该如何去编辑默认的相机捕捉活动
大约有 10,000 种 Android 设备型号。它们附带数十种(如果不是数百种)不同的相机应用程序。另外,用户自己安装。任何一个都可以回应ACTION_IMAGE_CAPTURE
。他们中的任何一个是否有确认屏幕取决于这些应用程序的开发人员,而不是您。如果您想完全控制相机体验,请不要将拍照委托给ACTION_IMAGE_CAPTURE
,而是编写您自己的相机代码。
推荐阅读
- php - 更新查询 Codeigniter 消息
- jquery - 如何从 JQuery 加载部分视图
- java - JDBC 连接池设置在 Glassfish5 上不起作用
- python - 使用 python venv 启动 urxvt
- mysql - 在 where 子句中选择唯一 ID 时是否必须使用“FETCH FIRST n ROWS ONLY”或“LIMIT”
- puppeteer - 如何在 puppeteer 中单击 id 包含冒号的元素?
- java - 为什么 Java 编译器不能从另一个文件中找到类?
- html - 如何制作洪水填充翻转按钮?
- javascript - 动漫js中无法识别交错()函数
- excel - 如何从数组中排除空单元格