Zxing目前最新版本3.3.2,打开摄像头就成功了,真正的极速扫描,效果喜人。
一、集成流程
1、克隆代码就不说了。
2、zxing项目巨大,我们只需要扫描部分的代码。
将android、android-core、core目录代码以及资源拷贝到项目目录下。
所有类都需要修改引用类路径,全局更新so easy!
这是我拷贝过后,未简洁过后的目录:
使用方式:
调用CaptureActivity,传入指定参数即可
action=Intents.Scan.ACTION,即可。
也可传入其他指定参数,例如:
二、自定义扫描页面
zxing还是非常灵活的,自定义还是非常方便。
1、扫描页面自定义
layout下面的capture.xml布局随意更改,我自己随意改的:
2、扫描框大小自定义
修改CameraManager.java下面的常量MAX_FRAME_WIDTH、MAX_FRAME_HEIGHT大小即可。
其他自定义可根据源码自行进行修改,就不献丑了。
三、近距离无法识别
先BB下,不喜请跳过
我遇到的坑,刚将zxing运行成功,做了一些修改后,在电脑上找个二维码扫描,一开相机就成功啦,真是喜人啊。后面自己生成二维码再试,遇到问题了,二维码已经放在框里了,为啥扫不到呀,反复修改代码,还是不行,最后找到原因是近距离无法扫描。
在网上找到的资料都已经过时了,无法使用,自己爬坑,看源码看了一整天,总算找到根本原因了,修改buildLuminanceSouce()方法,该方法是用于截取摄像头捕获到的图片:
修改为:
四、二维码生成以及解析
1、生成二维码
调用QRCodeParse类中的方法createQRCode即可
二、解析图片二维码
源码地址:
Zxing: https://github.com/zxing/zxing
Demo:https://github.com/SpringSmell/quick.library/tree/master/zxing.library