*最早我们用来生成二维码的第三方是ZBer,日本人开发的 但识别不好,容易出现乱码而且非开源。
现在我们主流用的是ZXing 它是由谷歌公司开发的,用于二维码的生成和扫描 ZXing的包我们可以在gethub上面下载 因为直接下载配置文件特别麻烦,我们开发不需要那么多东西,所以直接在网上找一个简化版的ZXing的Demo使用就可以了*
但是在我们导入的时候会有点问题 因为我们需要把这个Demo变成library 才能够用我们自己的项目进行依赖操作 把它变成library后switch就不能使用了 原来的代码会报错 所以我们需要把它变成if else语句
下面是对ZXing源码的分析::
ZXing有两个最主要的类
CaptureActivity和EncodingHandler
一个是用来扫描二维码的 另一个是用来生成二维码的
里面还有三个package:camera decoding view
camera 里面的一些类主要就是对相机参数的设置
decoding主要负责解码编码
view 里面就是两个控件
CaptureActivity主要负责扫描 它自定义了一个相机管理器 并进行了初始化
我们在使用扫描二维码的时候扫描后肯定需要返回二维码里的内容或者根据里面的意图来做一些操作 这个就在 onActivityResult这个方法里面 大致过程就跟bundle传值差不多 扫描后结束相机 然后把扫描到的结果给返回到当前的Activity中显示
EncodingHandler 主要负责生成二维码 这个类主要是给