二维码可以集成文本、网址、名片、文件、图片、音视频、微信、小程序等众多的功能,极大的方便了信息的传输与推广。在Android中使用Zxing二维码工具,zxing项目是谷歌推出的用来识别多种格式条形码的开源项目,本文将介绍Zxing项目、如何运行官方、自定义功能等。
Github下载地址:https://github.com/zxing/zxing
本文主要使用Android 客户端及依赖文件core和android-core
将项目下载到本地后,解压
解压后,看到项目为Eclipse项目结构(目前大多数使用Android Studio开发),本文以Intellij和Eclipse为例进行讲解
将项目导入到Intellij
File->New->Project from Existing Source
定位到项目所在路径,并确定
配置项目
添加一个Android项目,并保存
待项目引入环境配置后,运行
将项目导入到Eclipse
将zxing中的Android导入到Eclipses中
下载android-core和core jar包
如果不适用android-core libary和 core library ,可以从maven官网下载jar包适用,本文采用这种方式
项目路径下新建libs,并将上述jar包导入
运行项目
核心代码分析
CaptureActivity
ZXing暴露的调用Activity。在handleDecode方法中对扫码成功后的动作作处理。
ViewfinderView
ZXing扫码窗口的绘制,原始的ZXing使用这种方式去绘制,在上面提供的开源库中,作者将扫描框的绘制直接抽取到了XML文件中,这样修改起来更加方便了。
CameraConfigurationManager
修改横竖屏、处理变形效果的核心类。
在public void setDesiredCameraParameters(Camera camera, boolean safeMode)方法中(读取配置设置相机的对焦模式、闪光灯模式等等),可以将扫描改为竖屏
DecodeHandler
Xing解码的核心类
CaptureActivityHandler
当DecodeHandler.decode完成解码后,系统会向CaptureActivityHandler发消息。如果编码成功则调用CaptureActivity.handleDecode方法对扫描到的结果进行分类处理。
代码改造
Github上Zxing三方库比较多,如果有适合自己的项目可以不用改造,拿来用就是了,但是如果不适用,就要自己动手改造了, 当然Zxing官方也在一直升级,我们可以使用官方提供的实例改造,也可以在第三方库的基础上改造。
几行代码快速集成二维码扫描功能,目前start比较高的,功能也比较完善