请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

刘某人 2019-08-16 16:33:40

二维码扫莫默认的确实需要优化:


Zxing优化

这是Google的二维码库,我们一般直接引用或者拿Libaray来修改UI,但是有一些优化策略你一定要知道,这就是为什么大厂的App扫描比你的快的原因,首先是瘦身,Zxing这个库比较大,你熟悉代码可以释放的删减,其次是性能上的优化:


1.在枚举类BarcodeFormat中定义了N多的类型,如果你只使用二维码,可以在启动的时候传递:


Intent intent = new Intent(getActivity(), CaptureActivity.class);

intent.setAction(Intents.Scan.ACTION);

intent.putExtra(Intents.Scan.FORMATS, "QR_CODE");

startActivityForResult(intent, REQUEST_CODE);


2.缩短自动聚焦的时间

在AutoFocusManager 中,有一个变量,AUTO_FOCUS_INTERVAL_MS,在自动聚焦的时候会根据该变量设定的时间来睡眠,所以如果有需要可以修改


3.扫描精度

库中有一个PlanarYUVLuminanceSource用来封装扫描的精度,原因是因为官方为了性能,将扫描成像进行了无用的删减,我们可以在CameraManger中有一个buildLuminanceSource这个方法中修改返回的对象,全部改成width,height,这样不用对准中心即可:return new PlanarYUVLuminanceSource(data, width, height, 0, 0,

width,height, false);


4.优化Demo

在扫描Activity中,我们扫描出结果后会去绘制一个Bitmap显示,其实我们并不需要这个位图,所以可以删除,可以搜索 drawResultBitmap


5.结果传递

当我们扫描到结果的时候你会发现有一些延迟,其实这是因为官方做了延迟,也就是DEFAULT_INTENT_RESULT_DURATION_MS,想要快速扫描,则把它设置为0


还有比如什么图片拉伸,扫描UI之类的优化自行寻找一下

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信