Android开源库之使用ZXing开源库二维码-实现竖屏且高识别率
来源:互联网 发布:服务器与数据库的区别 编辑:程序博客网 时间:2024/05/17 08:24
ZXing开源库默认是横屏显示,在改为竖屏显示后,手动设定扫描匡的宽高,会发现近距离扫描二维码时,无法扫描成功,需要稍微远一点距离扫描,才能顺利扫描成功,分析应该是设置扫描匡的宽高后,其实际的扫描区域计算有问题,第1~4条借鉴博客,基本解决该问题,也感谢原博主,但是还稍微有点问题,就是在扫描复杂二维码时,识别率太低,这个问题在第5条中已经给出解决方法;
步骤:
1) 在AndroidManifest.xml中把 <Activity />标签 CaptureActivity 的screenOrientation修改为
android:screenOrientation="portrait"
2) 在CameraManager.java类中的getFramingRectInPreview()替换掉原先的 left right top bottom
//竖屏 rect.left = rect.left * cameraResolution.y / screenResolution.x; rect.right = rect.right * cameraResolution.y / screenResolution.x; rect.top = rect.top * cameraResolution.x / screenResolution.y; rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;
3) 在CameraConfigurationManager.java中void setDesiredCameraParameters(Camera camera)方法
在setParameters之前增加
camera.setDisplayOrientation(90);
co
4) 在DecodeHandler.java中的 decode(byte[] data, int width, int height)方法在
PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(data, width, height);
之前添加:
byte[] rotatedData = new byte[data.length]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) rotatedData[x * height + height - y - 1] = data[x + y * width]; } int tmp = width; // Here we are swapping, that's the difference to #11 width = height; height = tmp; data = rotatedData;
修改CameraConfigurationUtils类下的方法findBestPreviewSizeValue下的double screenAspectRatio = (double) screenResolution.x / (double) screenResolution.y;
这段代码为:
double screenAspectRatio;if(screenResolution.x > screenResolution.y){ screenAspectRatio = (double) screenResolution.x / (double) screenResolution.y;}else{ screenAspectRatio = (double) screenResolution.y / (double) screenResolution.x;}这样无论是横屏还是竖屏,都能正确找到最匹配的最大清晰度,识别率大大提高;
0 0
- Android开源库之使用ZXing开源库二维码-实现竖屏且高识别率
- Android开源库之使用ZXing开源库实现二维码功能
- Android 二维码扫描,识别率非常高
- Android开源库之使用ZXing开源库生成二维码及识别本地二维码图片
- android 使用开源库zxing生成二维码,扫描二维码
- android 使用开源库zxing生成二维码,扫描二维码
- 使用Zxing实现Android二维码扫描
- android使用zxing实现二维码扫描
- Android使用zxing实现二维码扫描
- Android之zxing二维码
- Android之二维码zxing
- Android二维码之zxing
- 【ZXing】Android使用zxing生成二维码图片
- 使用ZXing实现二维码扫描
- 使用ZXing实现二维码扫描
- 使用ZXing实现二维码扫描
- 使用ZXing实现二维码扫描
- 使用ZXing实现二维码扫描
- hdoj3714【三分】
- [Java]阿里内部面试总结
- Android学习之RecyclerView学习
- Javascript函数封装
- LIBSVM使用方法及参数设置
- Android开源库之使用ZXing开源库二维码-实现竖屏且高识别率
- CCF 消除类游戏
- Android自定义控件下拉刷新和加载更多
- 【一步步学OpenGL 2】-《你好顶点》
- 北大暑期学习之并查集
- Xcode命令Archive导出4个ipa包的含义
- Header First HTML and CSS章后bullet points总结之Chapter 10
- 如何将磁盘从GPT格式转换成MBR格式——或MBR2GPT
- 怎样打印linux/mac环境变量