Github地址:https://github.com/google/cameraview

该控件为Google开源,非官方,只为了开发人员轻松集成Camera功能。

混淆:

发布release版本时,请在主module中得proguard-rules.pro文件中加入 -ignorewarnings,否则会出现waring警告导致构建失败。

-ignorewarnings

权限:

<uses-permission android:name="android.permission.CAMERA" />

XML:

?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/btn_take_picture"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@android:color/white"android:text="拍照" /><Buttonandroid:id="@+id/btn_start_camera"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/btn_take_picture"android:background="@android:color/white"android:text="开启相机" /><Buttonandroid:id="@+id/btn_stop_camera"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/btn_start_camera"android:background="@android:color/white"android:text="关闭相机" /><com.google.android.cameraview.CameraViewandroid:id="@+id/camera_view"android:layout_width="match_parent"android:layout_height="match_parent"android:adjustViewBounds="true"android:keepScreenOn="true"app:aspectRatio="4:3"app:autoFocus="true"app:facing="back"app:flash="auto" />
</RelativeLayout>

代码:

mCameraView = (CameraView) findViewById(R.id.camera_view);
//为控件设置回调方法,相机开启,停止预览的时候会走该回调方法。
mCameraView.addCallback(new CameraView.Callback() {@Overridepublic void onCameraOpened(CameraView cameraView) {//相机打开调用Toast.makeText(MainActivity.this, "打开相机回调", Toast.LENGTH_SHORT).show();}@Overridepublic void onCameraClosed(CameraView cameraView) {//相机关闭调用Toast.makeText(MainActivity.this, "关闭相机回调", Toast.LENGTH_SHORT).show();}@Overridepublic void onPictureTaken(CameraView cameraView, final byte[] data) {//data 相机拍摄得到得图片,可以通过字节流写入文件中保存。//FileIOUtils.writeFileFromBytesByStream(filePath, data);Toast.makeText(MainActivity.this, "抓取图片回调   " + data.toString(), Toast.LENGTH_SHORT).show();}
});
//拍照
findViewById(R.id.btn_take_picture).setOnClickListener(v -> {new RxPermissions(this).requestEach(Manifest.permission.CAMERA).subscribe(permission -> {if (permission.granted) {if (mCameraView.isCameraOpened()) {mCameraView.takePicture();}else {Toast.makeText(MainActivity.this, "请开启相机后再进行拍照 ", Toast.LENGTH_SHORT).show();}} else {Toast.makeText(MainActivity.this, "请打开相机权限", Toast.LENGTH_SHORT).show();}});
});
//启动相机并预览
findViewById(R.id.btn_start_camera).setOnClickListener(v -> {new RxPermissions(this).requestEach(Manifest.permission.CAMERA).subscribe(permission -> {if (permission.granted) {if (!mCameraView.isCameraOpened()) {mCameraView.start();}} else {Toast.makeText(MainActivity.this, "请打开相机权限", Toast.LENGTH_SHORT).show();}});
});
//关闭相机
findViewById(R.id.btn_stop_camera).setOnClickListener(v -> {new RxPermissions(this).requestEach(Manifest.permission.CAMERA).subscribe(permission -> {if (permission.granted) {if (mCameraView.isCameraOpened()) {mCameraView.stop();}} else {Toast.makeText(MainActivity.this, "请打开相机权限", Toast.LENGTH_SHORT).show();}});
});

实现效果:

CameraView Android 相机预览控件相关推荐

  1. Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  2. android 预览和拍照成像方向不一致,Android相机预览方向深入探究

    原标题:Android相机预览方向深入探究 今日快讯 9月7日,北京市交通委召集各区管理部门和15家共享自行车企业负责人,听取共享自行车投放和管理的意见建议,研究决定并下发通知,暂停在本市新增投放共享 ...

  3. Android相机预览方向

    以前对Camera了解的不是太深入,最近有需求把人脸识别 集成到项目,必然会与Camera打交道,遇到一些坑,与大家分享一下. 一.预览方向   Camera.CameraInfo info = ne ...

  4. Android相机预览设置适配及显示方式

    Android相机的部分工作原理. 预览流程 相机预览是Android Camera最常用的功能之一,它是很多功能重要的输入,例如扫码.AR等. 一般而言,相机预览的整体流程,可以通过下图表示: 其中 ...

  5. Android相机预览页面被压缩和拉伸问题

    最近公司要求在原有的项目中添加一个扫码登录的功能,在调试好相机之后,发现相机返回到Surfaceview页面上的预览图片,与我们现实中物品的比例并不相同,在一块正方形的Surfaceview中,预览界 ...

  6. Android 相机方向传感,Nexus 5x反向横向传感器修复在Android相机预览...

    我是Android开发中的新手,所以如果我的问题很简单,我会提前道歉.在我的应用程序的一部分,我需要我的后置摄像头的实时预览,所以我创建了一个自定义类,扩展SurfaceView并实现SurfaceH ...

  7. 2022-07-21 Android 相机预览数据转Bitmap优化

    背景 在Android开发中我们有时候会需要拿到相机预览数据转成bitmap自己做处理. 常用方式 在Android API中提供了 一套转换方式: private Bitmap convertBit ...

  8. Android 相机预览 横屏竖屏 -- 显示

    相机在设备上处于固定位置,无论设备是否 是手机.平板电脑或计算机.当设备方向更改时, 相机方向更改.常见的布局显示比率是 4:3. 对于前置摄像头,图像缓冲区逆时针旋转(从 传感器的自然方向) 对于后 ...

  9. Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别

    效果图: 第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDete ...

最新文章

  1. hdu 5212 : Code【莫比乌斯】
  2. 市面上主流的TCC框架介绍
  3. GAN生成对抗网络-INFOGAN原理与基本实现-可解释的生成对抗网络-06
  4. PCB叠层及相关板材介绍
  5. Android 编译环境的依赖库安装
  6. [转]仿163网盘无刷新文件上传系统
  7. Redis:安装、配置、操作和简单代码实例(C语言Client端)[转]
  8. Windows2003 SQL2005解决系统Administrator密码不知道的问题
  9. kmeans python自定义初始聚类中心_机器学习-KMeans聚类 K值以及初始类簇中心点的选取...
  10. openstack 功能_2016年OpenStack的新功能:看一下Newton版本
  11. 公司打印机的安装和使用
  12. VBNET的一些特殊能力
  13. python为什么import不了_python – 为什么PyImport_Import无法从当前目录加载模块?
  14. css3中border-image的用法(fill 、border-image-outset 、border-image-width)
  15. 【BZOJ1823】 [JSOI2010]满汉全席
  16. VBScript 程序员参考手册 读书笔记01-07
  17. 高薪物联网职业生涯所需的十大技能(转)
  18. KVM设备透传与重定向
  19. PPT“备注”内容字体可以修改颜色也能直接看到修改效果
  20. TWINSNOW - Snowflakes 哈希

热门文章

  1. Apache ShenYu源码阅读系列-基于ZooKeeper的数据同步
  2. 【网络】Padavan固件获取运营商ipv6设置
  3. 印象笔记(evernote)支持MarkDown语法
  4. wiki维基百科各种语料数据下载
  5. Python短链接生成、长链接还原,就是这么简单!
  6. opencv cv2.THRESH_OTSU 二值化
  7. 研华webaccess与西门子PLC以太网通讯配置
  8. 动态规划------求解决策过程中最优化的数学方法
  9. Win7 x64 Vad遍历模块
  10. 任总讲话,说明华为对5G有清醒的认识