CameraView Android 相机预览控件
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 相机预览控件相关推荐
- Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改
场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- android 预览和拍照成像方向不一致,Android相机预览方向深入探究
原标题:Android相机预览方向深入探究 今日快讯 9月7日,北京市交通委召集各区管理部门和15家共享自行车企业负责人,听取共享自行车投放和管理的意见建议,研究决定并下发通知,暂停在本市新增投放共享 ...
- Android相机预览方向
以前对Camera了解的不是太深入,最近有需求把人脸识别 集成到项目,必然会与Camera打交道,遇到一些坑,与大家分享一下. 一.预览方向 Camera.CameraInfo info = ne ...
- Android相机预览设置适配及显示方式
Android相机的部分工作原理. 预览流程 相机预览是Android Camera最常用的功能之一,它是很多功能重要的输入,例如扫码.AR等. 一般而言,相机预览的整体流程,可以通过下图表示: 其中 ...
- Android相机预览页面被压缩和拉伸问题
最近公司要求在原有的项目中添加一个扫码登录的功能,在调试好相机之后,发现相机返回到Surfaceview页面上的预览图片,与我们现实中物品的比例并不相同,在一块正方形的Surfaceview中,预览界 ...
- Android 相机方向传感,Nexus 5x反向横向传感器修复在Android相机预览...
我是Android开发中的新手,所以如果我的问题很简单,我会提前道歉.在我的应用程序的一部分,我需要我的后置摄像头的实时预览,所以我创建了一个自定义类,扩展SurfaceView并实现SurfaceH ...
- 2022-07-21 Android 相机预览数据转Bitmap优化
背景 在Android开发中我们有时候会需要拿到相机预览数据转成bitmap自己做处理. 常用方式 在Android API中提供了 一套转换方式: private Bitmap convertBit ...
- Android 相机预览 横屏竖屏 -- 显示
相机在设备上处于固定位置,无论设备是否 是手机.平板电脑或计算机.当设备方向更改时, 相机方向更改.常见的布局显示比率是 4:3. 对于前置摄像头,图像缓冲区逆时针旋转(从 传感器的自然方向) 对于后 ...
- Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别
效果图: 第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDete ...
最新文章
- hdu 5212 : Code【莫比乌斯】
- 市面上主流的TCC框架介绍
- GAN生成对抗网络-INFOGAN原理与基本实现-可解释的生成对抗网络-06
- PCB叠层及相关板材介绍
- Android 编译环境的依赖库安装
- [转]仿163网盘无刷新文件上传系统
- Redis:安装、配置、操作和简单代码实例(C语言Client端)[转]
- Windows2003 SQL2005解决系统Administrator密码不知道的问题
- kmeans python自定义初始聚类中心_机器学习-KMeans聚类 K值以及初始类簇中心点的选取...
- openstack 功能_2016年OpenStack的新功能:看一下Newton版本
- 公司打印机的安装和使用
- VBNET的一些特殊能力
- python为什么import不了_python – 为什么PyImport_Import无法从当前目录加载模块?
- css3中border-image的用法(fill 、border-image-outset 、border-image-width)
- 【BZOJ1823】 [JSOI2010]满汉全席
- VBScript 程序员参考手册 读书笔记01-07
- 高薪物联网职业生涯所需的十大技能(转)
- KVM设备透传与重定向
- PPT“备注”内容字体可以修改颜色也能直接看到修改效果
- TWINSNOW - Snowflakes 哈希