腾讯优测优分享 | 适配路上,避免掉入“扫码调用相机”的坑

最近作的项目有幸用到了腾讯优测云测试平台,作Android开发最大的问题应该就是适配了。曾经有这么一个段子:某个作Android应用的创业公司破产了,不是由于技术不行,而是由于他们没钱买机器来作适配了。
固然这仅仅是一个段子,但Android的碎片化确实是一个很严重的问题。因为Android系统是开源的,各个厂商可能都会有本身定制的ROM。
那么问题就来了,咱们作的APP须要针对这些不一样的ROM来适配,保证APP可以在不一样的ROM下正常使用。Android手机和ROM那么多,咱们不可能把全部的手机都买回来作适配。工具

那有没有什么快捷的途径能够进行适配呢?

有了腾讯优测,今后适配变得如此简单。咦,我怎么好像在给这个产品作广告呢?随便打赏点就行了~测试

下面我把项目中扫描出来的跟相机有关的问题跟你们分享一下,避免再次入坑。

项目中有一个功能点是扫描二维码,咱们使用了开源的zxing来实现这个功能。原本这是一个很简单的流程,调用相机,对焦扫描二维码,对二维码中的信息进行解码。
可是问题来了,各个厂商的相机参数不一样,屏幕尺寸的比例又不统一,若是设置的previewSize参数不对,调用相机的时候会发现画面有拉伸,有时候还会出现花屏的现象。spa

那么如何根据屏幕的尺寸来设置正确的相机预览尺寸呢?

好在咱们能够获取到相机所支持的全部预览尺寸,以及屏幕的宽度和高度。调试

经过以下代码能够获取到相机所支持的全部预览尺寸:

Camera.Parameters parameters = camera.getParameters();
List sizes = parameters.getSupportedPreviewSizes();对象

获取到预览尺寸列表以后,再获取屏幕的尺寸:

WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
其中,displayMetrics对象包含了屏幕的宽和高。
咱们能够根据屏幕的尺寸,从相机所支持的预览尺寸列表中,选择最合适的previewSize来设置camera的参数。如何选择最合适的预览尺寸,能够参考官方demo中的作法。
这里的代码不能格式化,只好贴截图了:游戏

我这里说到的坑只是适配问题的冰山一角,后续若是有更多的填坑经历,我再与你们一块儿分享~
文/腾讯 刘宁
_
 
腾讯优测是专业的移动云测试平台,为应用、游戏、H5混合应用的研发团队提供产品质量检测与问题解决服务。不只在线上平台提供自动化兼容性测试、云手机远程租用与调试、漏洞分析、自动化测试工具Xtest等多种质量检测工具,更为VIP客户配备了专家团队提供定制化综合测试解决方案。开发

相关文章
相关标签/搜索