这段时间我做的一个app需要用到二维码扫描,但是找遍了我们的51CTO都没有找到合适的文章,我想把我自己利用zxing做二维码扫描的方法提供出来供大家参考。

什么是Z?
在Android平台做过二维码相关模块的肯定都熟知ZXing开源项目,Z
是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括: .NET and C#、J2ME、J2SE和Android等。其GitHub地址是:https://github.com/zxing/zxing。目前的最新版本是3.4.0,本次我采用的是3.3.2.
Z*项目里面代码很多,实现的功能也很多,我们的应用只需要剥离其中的扫描模块即可,再多一点也就是生成二维码的功能;接下来我们就一起来精简ZXing项目,最终形成一个小的Demo案例,当然江湖上已经有过N多种版本的ZXing精简项目,什么横屏改竖屏,绘制扫描界面,开启闪光灯等等,并且许多都是基于ZXing2.3.0来做精简的,后续有许多更新的版本,包括自动对焦,Camera管理,bug修复等等新功能;笔者使用的是ZXing3.1.0版本,这里需要说明的就是我的这版Demo绝对是江湖上面还没有出现的,也算是一点点小小的创新把,那就是去掉ZXing项目中恼人的ViewFinderView的绘制,使用XML布局扫描界面,添加扫描动画,精确计算扫描区域。
打开ZXing项目的文件夹(https://github.com/zxing/zxing),可以看到如下文件目录:

下载下来就是一个完整的Zxing的包,但这个包的内容还是太大,我只选择了一部分放入我的程序中。
下面就是我的程序,其中必须下载zxing包,图中用红色标出来的部分。