【腾讯优测干货分享】Android 相机预览方向及其适配探索

Android Camera旋转角度总结 开发过Android自定义相机的朋友们估计都被相机的各种乱七八糟的旋转角度适配坑过,本文将对Camera的各种角度进行解析。 一、适配目标 根据相机旋转角度以及屏幕显示旋转角度选择相机预览数据显示到View上的预览数据显示旋转角度,使眼睛直接看到的真实画面和手机屏幕中显示的画面效果相同。 **相机旋转角度:**相机成像相对于手机的旋转角度,若设备已经安装上了相机,那么该相机相对于设备的旋转角度... 阅读详情

本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/583ba1df25d735cd2797004d

由于Android系统的开放策略,Android手机呈现碎片化的趋势,兼容性问题一直是Android App 开发者头疼的难题。本文以Android相机预览方向为例,探索在Android机型适配上的一些思路。

1. android相机简介

由于Android系统的开放策略,Android手机呈现碎片化的趋势,兼容性问题一直是Android App 开发者头疼的难题。本文以Android相机预览方向为例,探索在Android机型适配上的一些思路。

1.1 相机架构

先了解下Camera的框架,它是分层的结构。由上向下分别是

1)应用层
2)Camera系统的Java类
3)Camera的JNI代码
4)Camera的本地框架
5)Camera服务部分
6)Camera HAL(Hardware Abstraction Layer)硬件抽象层

图一Camera architecture

其中Camera HAL主要的接口文件为CameraHardwareInterface.h ,需要各个系统根据自己的情况实现。由于设备底层硬件的千变万化,android框架不可能提供统一的硬件驱动以及接口实现,只能提供标准的接口,因此硬件提供商需要自己开发设备驱动,并去实现android框架提供的接口。

而实际上,由于机器的硬件配置不同,厂商的底层实现不同,Andriod版本的不同,在一部手机上调试正常的程序,不一定能在其他机型上正常运行。其中与摄像头相关的适配问题包括摄像头个数、preview size大小、预览方向、闪光灯、对焦方式、帧率等等。

本文以相机预览方向为例,探讨这个问题产生的原因,以及一些可行的解决方法。

2. 相机预览方向适配问题的产生

2.1相机的安装方向

相机图像数据都是来自于相机硬件的图像传感器(Image Sensor),这个Sensor被固定到手机之后是有一个默认的取景方向,且不会改变。比如MI3手机的屏幕“自然”方向和后置相机的图像

android 10.0 开机动画横屏显示 在android 中开机动画这部分主要是bootanimation模块负责处理 开机动画主要由BootAnimation.cpp来负责处理 接下来就来看BootAnimation.cpp的相关源码 路径:frameworks\base\cmds\bootanimation\BootAnimation.cpp status_t BootAnimation::readyToRun() { mAssets.addDefaultAssets(); mDisplayToken = SurfaceComposerCli 阅读详情

相关推荐

阿里云Ubuntu部署Steam饥荒联机版服务器:从零到多人联机的完整指南

本文详细介绍了在阿里云Ubuntu系统上部署Steam饥荒联机版服务器的完整流程,包括环境准备、SteamCMD安装、服务端配置、Mod管理及后台运行技巧。通过2核4GB的ECS实例配置和端口设置,实现5人流畅联机体验,适合游戏爱好者快速搭建专属服务器。

weixin_29229261的博客 1024

CXL技术入门:从PCIe到高性能计算的桥梁(附最新2.0协议解析)

本文深入解析CXL技术如何作为PCIe的进化版,成为高性能计算的关键桥梁,特别聚焦CXL 2.0协议的关键升级。从技术架构、三大子协议到典型应用场景,全面介绍CXL在缓存一致性、内存共享等方面的优势,帮助开发者快速掌握这一前沿技术。

wdx012345的博客 728

antiSMASH安装与使用

antiSMASH本地安装 简要: antiSMASH的本地安装需要安装很多的依赖包,本文章使用conda辅助安装 参考: 官方:https://docs.antismash.secondarymetabolites.org/install/ 文章:http://blog.sciencenet.cn/blog-3416913-1240614.html 依赖包下载 conda install -y diamond=0.8.36 conda install -y fasttree=2.1.9 conda ins

Curry_chenhu的博客 7224

NX/UG二次开发—CAM—设置程序修剪边界Boundary

最近做了一个设置CAM程序边界的小工具,分享一下经验(官方的代码在文章末尾处),以下均以修剪边界曲线为例。 以下为官方提供的源码: /***************************** Include Files **********************************/ #include <stdlib.h> #include <uf.h> #include <uf_obj.h> #include <uf_object_type

门前大桥下,游过一群鸭,快来看一看,原来是C++ 3733

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4760

Claude Code 学习笔记之一:理解 Agentic Loop 与内置工具

本文介绍了Claude Code这一终端智能助手的工作原理与使用方式。作者从ABAP开发经验出发,指出学习Claude Code的高级用法具有长期价值。文章详细解析了Claude Code的Agentic Loop机制:通过大语言模型进行推理,借助各类工具执行任务,并循环收集上下文、执行操作、验证结果三个步骤。系统阐述了Claude Code支持的五大类工具及其扩展方式,说明了其访问本地资源的范围和自治处理能力,同时介绍了权限模式等安全机制。最后提供了从小任务开始、充分探索、及时引导、使用CLAUDE.md

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 546

《嵌入式最全面试题-Offer直通车》目录

嵌入式领域蓬勃发展,嵌入式工程师成为众多科技企业争抢的热门人才。如果你渴望在嵌入式面试中脱颖而出,成功斩获心仪的 offer,那么《嵌入式最全面试题 - Offer直通车》将是你的绝佳选择。本专栏是优快云是热门专栏,100多篇文章,总字数过百万。每月新增订阅用户过百,现在是优惠价9.9元,后面要逐渐恢复原价,早订阅早受益。本专栏精心整理了众多超万字的精华内容,总计达数十万字的嵌入式面试题总结。涵盖从嵌入式基础知识到各大厂面试真题,从驱动开发到操作系统,从硬件到软件等各个方面。

大模型大数据攻城狮的专栏 8395

[SC]SystemC在CPU/GPU验证中的应用(六)

本文提供了一个SystemC学习路线图,包含50个由浅入深的编程实例,涵盖从基础模块到复杂SoC建模的全过程。示例包括:基础模块(时钟、计数器)、通道(FIFO、握手)、TLM2.0接口、总线模型(AXI-Lite)、CPU/GPU内核实现、功耗分析、断言验证等。重点展示了SystemC在硬件验证中的关键应用:VCD波形生成、UVM-SystemC框架、Verilog DPI协同仿真、Python集成、NoC路由器和完整SoC建模(CPU+Cache+DRAM+互连)。每个示例提供完整代码和详细注释,建议分

元直的博客 1492

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 【腾讯Bugly干货分享】Redex初探与Interdex:Andorid冷启动优化
下一篇: 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架
腾讯Bugly
博客等级 码龄12年 1875粉丝 201原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值