程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

时间:2021-05-07 20:50:21

Adroid zxing 二维码3.1集成

声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。

转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢!

引子:最近项目中用到二维码,找到了最新的3.1版本 zxing-GitHub,进行了集成、调整,同时笔记以备忘。

展示应用下载:程序猿媛2.1

求点击:博客访问9.9k+了,距离初步期望1w很近了。   一个多月的封闭开发也终于结束了,成都也雨后天晴出太阳。

    特此版本去掉了下载时需要积分的情况,网站之外的tx们,方便的话,随手点一下“花佟林雨月

实现效果:

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

相关博文很多,生成jar包,简化代码。度娘一下就有了。 感觉需要必要笔记,是发现:

  • 以1.6版本居多,据说3.1对4x支持更好些。
  • 简化后,对扩展比较麻烦。
  • 修改竖屏后,修改的地方找起来比较麻烦。

未使用简化版本,直接引用zxing源码

由于网上的简化版本,对功能扩展比较麻烦,因此,直接将zxing放到了工程目录下的extras/zxing下,只在项目中加入了目录,复制、修改了必要的文件,其他均引用源码文件

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

修改竖屏后所需调整

集成过程中,发现网文提到的修改竖屏,还是有点分散的,找起还是有点麻烦。故在CameraConfigurationManager加了一个标识方法:isPortrait(),返回true

例如,DecodeHandler.java的decode方法中需要调整,如下条件实现:

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

其他需要修改的地方,也如此使用isPortrait()条件,所以,只需要看下isPortrait()的Call Hierarchy,就比较清晰得看到所需修改。

同时,返回false,就可以恢复到源码处理。

绘制扫描框

根据项目需求,需要重新绘制扫描框框,主要在ViewfinderView.java实现绘制方法,同样条件控制,drawScanFrame局部如下:

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

灯光的设置

根据源码中,音量键对灯光的开关,添加了新接口,支持标题右上角对灯光的控制:

CameraManager.java中:

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

以及CameraConfigurationManager.java中:

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

在Activity中进行必要的调用处理即可。

QrCaptureActivity 中扫描成功的处理

根据实际需求,扫描成功后,跳转并将数据传递给新页面,因此,只在handleDecode方法中,

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)

在注释信息下面,将新页面的跳转就可以了。

如果有其他需求,也在这里自行处理,应该就没有问题了。

另外,运行zxing源码,可以看到它有个设置页面,也可以根据需求,集成该设置页面,或修改R.xml.preferences中的配置即可。

全文完,希望对您有帮助,谢谢!

展示应用下载:程序猿媛2.1

转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢!