想看更多算法题,可以扫描上方二维码关注我微信公众号“数据结构和算法”,截止到目前我已经在公众号中更新了500多道算法题,其中部分已经整理成了pdf文档,截止到目前总共有800多页(并且还会不断的增加),可以在公众号中回复关键字“pdf”即可下载。

在Android中拍照最初使用的是Camera,现在基本上已经被废弃了,然后就是Camera2,这个使用更灵活,但有一点复杂,然后就是CameraX了,这个使用起来更方便。我们先来看一下演示效果

他可以使用前置或者后置摄像头拍照,自动对焦,也可以实现证件照并实现剪切

使用方式

在根目录的buid.gradle文件中添加

 allprojects {repositories {...maven { url 'https://jitpack.io' }}}

然后在使用的module的buid.gradle中添加

  implementation 'com.github.sdwwld:CameraX:1.1.5'

使用方式很简单,几行代码即可

            new CameraParam.Builder().setActivity(this).build();

当然如果不能满足你的需求,还可以修改更多的属性

            String cameraPath = Environment.getExternalStorageDirectory().getPath() + File.separator + "DCIM" + File.separator + "Camera";File cameraFolder = new File(cameraPath);if (!cameraFolder.exists()) {cameraFolder.mkdirs();}SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss");CameraParam mCameraParam =new CameraParam.Builder().setActivity(this)//!!!参数必须要有.setFront(false)//是否是前置摄像头,true是前置摄像头,false是后置摄像头.setShowMask(true)//是否显示裁剪区,如果显示,图片会进行裁剪.setShowSwitch(true)//是否显示摄像头切换按钮,如果显示,可以点击切换前后摄像头.setSwitchLeft(Tools.dp2px(this, 40))//摄像头切换按钮到屏幕左边的距离.setSwitchTop(Tools.dp2px(this, 40))//摄像头切换按钮到屏幕上边的距离.setSwitchSize(Tools.dp2px(this, 40))//摄像头切换按钮的大小(宽高一样,是正方形的).setBackText("返回")//下面返回键显示的文字.setBackColor(Color.WHITE)//下面返回键的颜色.setBackSize(16)//下面返回键的尺寸.setBackLeft(Tools.dp2px(this, 10))//返回键到屏幕左边的距离.setTakePhotoSize(Tools.dp2px(this, 60))//拍照按钮的大小(还有拍照完之后显示的保存和放弃保存的按钮,这3个按钮的大小是一样的).setMaskMarginLeftAndRight(Tools.dp2px(this, 20))//如果显示裁剪框,裁剪框左右两边倒屏幕的距离.setMaskMarginTop(Tools.dp2px(this, 120))如果显示裁剪框,裁剪框到屏幕上边的距离.setMaskRatioW(8)//下面一行和当前行表示的是裁剪框的宽高比.setMaskRatioH(5).setResultBottom(Tools.dp2px(this, 60))//拍照按钮到屏幕下边的距离(还有拍照完之后显示的保存和放弃保存的按钮).setResultLeftAndRight(Tools.dp2px(this, 60))//拍照完之后显示的保存和放弃保存的按钮到左边和右边的距离.setSwitchImgId(R.drawable.ic_switch)//切换摄像头的按钮.setMaskImgId(R.drawable.bg_bankcard)//剪切框.setSaveImgId(R.mipmap.success)//拍照成功之后的保存按钮.setCancelImgId(R.mipmap.failed)//拍照成功之后的放弃按钮.setTakePhotoImgId(R.mipmap.take_button)//拍照按钮.setPicturePath(cameraFolder.getAbsolutePath() + File.separator + "IMG_" + simpleDateFormat.format(new Date()) + ".jpg")//拍照保存的路径.setShowFocusTips(true)//点击屏幕聚焦成功的时候是否需要提示.setFocusFailTips("聚焦失败")//聚焦失败的提示.setFocusSuccessTips("聚焦成功")//聚焦成功的提示.setFocusViewTime(3)//聚焦的时间,是秒.setFocusViewColor(ContextCompat.getColor(this, R.color.blue))//聚焦框的颜色.setFocusViewSize(Tools.dp2px(this, 60))//聚焦框的大小(正方形的).setCornerViewSize(Tools.dp2px(this, 12))//聚焦框的圆角大小.setFocusViewStrokeSize(Tools.dp2px(this, 2))//聚焦框线条宽度.setRequestCode(CameraConstant.REQUEST_CODE)//请求码.build();//第一个参数是必须要有的,后面的参数不是必须的,如果想获取默认参数可以像下面这样Log.d("wld______", mCameraParam.getPicturePath());

至于文件的获取路径可以使用下面的方式

    @Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);//requestCode默认是CameraConstant.REQUEST_CODE ,当然也可以在上面的CameraParam创建的时候//调用setRequestCode修改if (requestCode == CameraConstant.REQUEST_CODE && resultCode == RESULT_OK) {//获取图片路径String picturePath = data.getStringExtra(CameraConstant.PICTURE_PATH_KEY);//显示出来img_picture.setVisibility(View.VISIBLE);img_picture.setImageBitmap(BitmapFactory.decodeFile(picturePath));}}

具体项目demo可以到github上下载。

Android 使用CameraX拍照,自动对焦,以及证件照剪切相关推荐

  1. Android 使用CameraX拍照、预览

    参考:https://blog.csdn.net/qq_17441227/article/details/119874979

  2. Android 使用CameraX实现预览/拍照/录制视频/图片分析/对焦/缩放/切换摄像头等操作

    1. CameraX架构 看官方文档 CameraX架构 有如下这一段话 使用CameraX,借助名为"用例"的抽象概念与设备的相机进行交互. 预览 : 接受用于显示预览的Surf ...

  3. android opencv 数码变焦,Android开发(53) 摄像头自动对焦。在OpenCV图像识别中连续拍照时自动对焦和拍照。......

    概述 对焦,这里所说的"焦"是指"焦距".在拍照时,一定是需要调焦的.一般会在目标位置最清晰的时候会停止对焦.最近在处理OpenCV进行图像识别时,需要连续的调 ...

  4. android自动对焦第一次对焦,Android自定义相机实现自动对焦和手动对焦

    Android自定义相机实现自动对焦和手动对焦: 不调用系统相机,因为不同的机器打开相机呈现的界面不统一也不能满足需求. 所以为了让程序在不同的机器上呈现出统一的界面,并且可以根据需求进行布局,做了此 ...

  5. android 静默拍照功能,Android实现静默拍照功能

    本文实例为大家分享了Android实现静默拍照功能的具体代码,供大家参考,具体内容如下 1.申请权限(6.0以后要动态申请) 2.创建相机工具类 CameraPreview: public class ...

  6. Android 使用 CameraX 快速实现仿微信短视频录制

    Android 使用 CameraX 快速实现仿微信短视频录制(轻触拍照.长按录像) https://github.com/ldlywt/MyCameraX 微信短视频android端 https:/ ...

  7. 十分钟实现 Android Camera2 相机拍照

    1. 前言 因为工作中要使用Android Camera2 API,但因为Camera2比较复杂,网上资料也比较乱,有一定入门门槛,所以花了几天时间系统研究了下,并在CSDN上记录了下,希望能帮助到更 ...

  8. android 自定义相册选择,Android通过手机拍照或从本地相册选取图片设置头像

    像微信.QQ.微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式: 1.让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像. 2.让用户启动手机的相机拍照,拍完照片后裁剪 ...

  9. android 7调用摄像头,Android调用摄像头拍照(兼容7.0)

    [实例简介] Android调用摄像头拍照(兼容7.0)Demo,原博客文章https://blog.csdn.net/u010356768/article/details/70808162 [实例截 ...

最新文章

  1. 1.3 机器学习基础-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  2. C++基类与派生类的转换与多态性
  3. golismero web扫描器
  4. jsencrypt加密结果false(网罗答案) - 分析篇
  5. VS里的新建模板(自动添加版本注释)
  6. 位运算判断奇偶数_基础拾遗:除了amp;和amp;amp;的区别,你还要知道位运算的这5个运算符...
  7. 微服务升级_SpringCloud Alibaba工作笔记0006---spring gateway工作流程
  8. 深度linux任务栏,Deepin系统的dde-dock任务栏出不来的有效解决方法
  9. android studio release error INSTALL_FAILED_INSUFFICIENT_STORAGE
  10. 无法保存关闭文件 苹果电脑 显示正在保存_??Linux文件编辑 - 给你骨质唱疏松
  11. devgis分享 只分享有价值的东西!http://download.csdn.net/user/devgis
  12. 我的上岸之旅——深圳工业大学
  13. 牛客(基础位运算)起床困难症
  14. MySQL 根据身份证查找年龄段
  15. 各种数据库中的dual表
  16. 史上最详细的Stacked Hourglass姿态检测算法详解(源码分析)
  17. Bootstrap下拉菜单失效的解决方法+使用Bootstrap制作响应式网页
  18. 修改linux编译配置文件,Porting:linux内核编译、配置、修改配置文件、添加.c文件到内核...
  19. 什么牌子的蓝牙耳机耐用?2023年最值得入手的蓝牙耳机分享
  20. 音视频开发之旅(36) -FFmpeg +OpenSL ES实现音频解码和播放

热门文章

  1. Python %用法
  2. 内部干货 | 阿里CEO逍遥子:学会“用人做事”,而不是“做事用人”...
  3. 用python实现九宫格
  4. js实现将 图片转base64编码
  5. Redis 水滴石穿之(四)持久化
  6. ubuntu 16.04 apt-get 更新使用中科大镜像源
  7. 淘宝新开的店铺无线端流量转化如何提高5倍?
  8. Android 状态栏样式设置
  9. 调用企业微信扫一扫功能流程记录
  10. KPCB 女皇 2014 年互联网趋势报告新鲜速读