这几天心血来潮突然想看看二维码怎么实现的,就顺便整理了看看
核心部分的是Google Zxing这样一个库,里面写好了所有识别二维码以>及生成二维码的所有算法。
1.该开源项目的github地址为:Google ZXing,当然了库本身代码很多,有人已经做了一些简化抽出了其中核心的扫码、解码功能,地址为:ZXingLib
2.笔者是以ZXingLib为基础,通过从上个github链接下载到文件后就是这样了,可以看到app/libs里面有个zxing.jar,然后还有一个libzxing里面有相关的各种工具类,就不细说了
3.当然了,可以直接把这个工程导入android studio,但是笔者考虑的是只把该功能加到原有的app功能上,但是这种资料太少,找到的方法基本都是以原有的项目作为库,笔者喜欢简洁纯净的自己建的项目,索性自己新建了android项目,具体如下
4.首先,将前面提过的jar文件添加到libs中,怎样在android中导入jar包,我就不细说了,自己百度。然后一点就是把下载到的app/src/java。到底。里面的mainacvity代码复制过来,顺带改改布局文件,这里为了学习起见就没有做修改
5.当然如果这就好了的话,我就懒得写个博客了,很明显的发现有好多导入包找不到,没错!这就是libzxing的作用,会发现libzxing的文件夹末尾有四个文件夹都有代码,问题就在这,因为jar包没有这些,索性跟libzxing里面src/main/java里面的包名一直,在自己的项目中新建个这样的包,然后代码复制过来,其实可以整个文件夹的复制,轻松得很,不重要。
5.还剩下一点点小问题,就是复制来的代码肯定也会报错,找不到activity的布局文件,找不到图片,找不到id什么的,就缺什么补什么,修修改改些明显的小问题,都复制过来,比较容易。还有就是需要在Androidmanifest中注册用到的activity,加个权限,比如调用摄像头,震动等,后面留有我的代码,所以说的简单。
6.改完之后就基本可以运行了,直接上图: