Android 相机预览 横屏竖屏 -- 显示
相机在设备上处于固定位置,无论设备是否 是手机、平板电脑或计算机。当设备方向更改时, 相机方向更改。常见的布局显示比率是 4:3。
- 对于前置摄像头,
图像缓冲区逆时针旋转
(从 传感器的自然方向) - 对于后置摄像头,
图像缓冲区顺时针旋转
(从 传感器的自然方向)
相机方向
- 前摄像头
图像必须逆时针旋转 270 度,以便预览的 方向与设备方向匹配:
后置摄像头将生成具有相同方向的图像缓冲区 作为上面的缓冲区,但是是 90 度。结果, 缓冲液顺时针旋转 90 度。SENSOR_ORIENTATION
因为相机图像传感器在 传感器的自然方向(横向),图像缓冲区必须旋转 相机预览指定的度数 以设备的自然方向直立显示。对于前置摄像头, 旋转是逆时针的;对于后置摄像头,顺时针方向。SENSOR_ORIENTATION
如果有兴趣了解详细的解释,点击官网查看
下面是代码分析
相机方向
前/后置预览布局 给固定的宽高(4:3),为了防止预览拉伸
//判断是前置还是后置if (Utils.isCurOriLand(this)){//横屏if (MainActivity3.getMode()==0){//后置surfaceView.getLayoutParams().width=640;surfaceView.getLayoutParams().height=480;}else {//前置surfaceView.getLayoutParams().width=480;surfaceView.getLayoutParams().height=640;}}else {//竖屏if (MainActivity3.getMode()==0){//后置surfaceView.getLayoutParams().width=480;surfaceView.getLayoutParams().height=640;}else {//前置surfaceView.getLayoutParams().width=640;surfaceView.getLayoutParams().height=480;}}
摄像机的角度
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
rotation =0(Surface.ROTATION_0),如下图
rotation =1(Surface.ROTATION_90), 如下图
预览角度
/*** 设置 摄像头的角度* @param activity 上下文* @param cameraId 摄像头ID(假如手机有N个摄像头,cameraId 的值 就是 0 ~ N-1)* @param camera 摄像头对象*/public static void setCameraDisplayOrientation(Activity activity,int cameraId, Camera camera) {Camera.CameraInfo info = new Camera.CameraInfo();//获取摄像头信息Camera.getCameraInfo(cameraId, info);int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();//获取摄像头当前的角度int degrees = 0;switch (rotation) {case Surface.ROTATION_0:degrees = 0;break;case Surface.ROTATION_90:if (MainActivity3.getMode()==0){//后置degrees = 90;}else {degrees = 270;}break;case Surface.ROTATION_180:degrees = 180;break;case Surface.ROTATION_270:degrees = 270;break;}int result;if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {result = (info.orientation + degrees) % 360;result = (360 - result) % 360; // compensate the mirror} else {// back-facingresult = (info.orientation - degrees + 360) % 360;}camera.setDisplayOrientation(result);}
- 竖屏后置效果图
- 竖屏前置效果图
Android 相机预览 横屏竖屏 -- 显示相关推荐
- Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别
效果图: 第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDete ...
- android 预览和拍照成像方向不一致,Android相机预览方向深入探究
原标题:Android相机预览方向深入探究 今日快讯 9月7日,北京市交通委召集各区管理部门和15家共享自行车企业负责人,听取共享自行车投放和管理的意见建议,研究决定并下发通知,暂停在本市新增投放共享 ...
- Android让所有应用都竖屏显示或者横屏显示
1. 所有应用竖屏显示: frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java pub ...
- Android相机预览设置适配及显示方式
Android相机的部分工作原理. 预览流程 相机预览是Android Camera最常用的功能之一,它是很多功能重要的输入,例如扫码.AR等. 一般而言,相机预览的整体流程,可以通过下图表示: 其中 ...
- Android相机预览方向
以前对Camera了解的不是太深入,最近有需求把人脸识别 集成到项目,必然会与Camera打交道,遇到一些坑,与大家分享一下. 一.预览方向 Camera.CameraInfo info = ne ...
- Android相机预览页面被压缩和拉伸问题
最近公司要求在原有的项目中添加一个扫码登录的功能,在调试好相机之后,发现相机返回到Surfaceview页面上的预览图片,与我们现实中物品的比例并不相同,在一块正方形的Surfaceview中,预览界 ...
- Android 相机方向传感,Nexus 5x反向横向传感器修复在Android相机预览...
我是Android开发中的新手,所以如果我的问题很简单,我会提前道歉.在我的应用程序的一部分,我需要我的后置摄像头的实时预览,所以我创建了一个自定义类,扩展SurfaceView并实现SurfaceH ...
- 2022-07-21 Android 相机预览数据转Bitmap优化
背景 在Android开发中我们有时候会需要拿到相机预览数据转成bitmap自己做处理. 常用方式 在Android API中提供了 一套转换方式: private Bitmap convertBit ...
- Android 相机预览方向和拍照方向
我们知道手机 Camera 的图像数据都是来自于摄像头硬件的图像传感器(Image Sensor),这个 Sensor 被固定到手机之后是有一个默认的取景方向的,这个方向如下图所示,坐标原点位于手机横 ...
最新文章
- android 设置setmultichoiceitems设置初始化勾选_阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?...
- a*算法matlab代码_导向滤波算法及其matlab代码实现
- TCP/IP协议——ARP详解
- 直播APP开发注意事项汇总
- Redis持久化实践及灾难恢复模拟
- 基于UML的面向对象分析与设计
- 构造函数必须没有代码
- Mac版钉钉之一个新的技术electron
- python读mat文件_我用Python对咪蒙的1013篇历史文章做了一次深度的数据分析...
- Android SDK4.0(api14)安装
- 利用TTL转USB串口在两台PC机间进行文件传输
- android粘性广播删除,android 广播机制(2) 粘性广播-Go语言中文社区
- vue3获取当前日期和时间
- 突发!人人影视字幕组14人被抓,用户超800万,涉案金额超1600万!网友炸了:免费的片没了...
- iptable 中文学习文档
- 晶振PPM小参数,大作用
- JavaScript 测试题 (2021-6-21)
- windows升级新版本mysql
- 如何选择PXI与PXIe开关模块
- 跨界狂魔,量化交易界的一代宗师——詹姆斯·西蒙斯
热门文章
- 使用 GitHub Actions 来构建应用程序
- 怎么把分钟转化成秒_一分钟短视频文案范文怎么写?短视频文案必爆公式分享(附文案范文模板)...
- 2018 秋招 百度二轮面试---血淋淋的经历写实
- java ar教程_JavaFX教程整理
- linux 检查openssl,linux – 如何检查OpenSSL中的FIPS 140-2支持?
- 下载链接在微信中无法打开的解决方案
- CSDN日报20170317——《转行穷三年?未必!》
- 利用Scanorama高效整合异质单细胞转录组
- 清华计算机录取通知书,清华送出第一批录取通知书,这些被刷屏的学霸,有怎样的成长密码...
- 3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸