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

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

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

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

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

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

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

好在我们可以获取到相机所支持的所有预览尺寸,以及屏幕的宽度和高度。

通过如下代码可以获取到相机所支持的所有预览尺寸:

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客户配备了专家团队提供定制化综合测试解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值