Android项目如何集成ZXing二维码扫描功能

最近的项目有二维码扫描跳转网页的需求,就是利用手机摄像头,扫描并解析二维码内容,内容由生成二维码的时候定义,我项目现在的需求就是一个包含了网址的二维码,网上有生成二维码的工具,也可以自己开发一个。

搜了一下android平台上实现二维码扫描的方法,找到zxing这个用java实现的开源二维码处理库,这个库算运用比较广泛的库了(几乎都推荐用这个库,文章也很多)。项目主页在这里。

项目主页上有很详细的描述,包括支持哪些类型的码、支持的平台(如java,android,iphone,rubuy等)。另外如果zxing不能满足需求,还推荐了两个比较成熟的开源库:zbar(用的c++,尤其适用于iphone平台,工程主页貌似要翻墙才能访问),zint(这个是二维码生成库)。

废话说了好多,下面说说怎么集成zxing了,其实网上也有集成好的包,不过我想自己弄一边可以加深印象。

在工程主页的Downloads下,可以看到

文件1:apk可以下载下来装上看看效果,挺强大的一个demo,包括扫码和生成的功能,该有的都有了。

文件2:不管。

文件3:txt文件,是一个网址,可以下载用来测试的一些二维码图片。

文件4:ZXing发布包,包含支持的各平台的demo,以及核心core包。如图:

文件5:早一点的android版本。

接下来下载文件1(安装看看效果),文件3(下载用来测试的二维码数据),文件4。

其实ZXing-2.2.zip(文件4)解压出来的android目录包含的工程Demo就是文件1apk的源码。把它导入到eclipse,如图:

导入后,会报错,提示没有依赖包,也就是核心库core.jar。怎么获取core.jar有两种方法(zxing项目主页wiki部分也有说明)。

1.直接下载core.jar包,地址在这里

2.自己编译一下core(ZXing-2.2.zip解压出来的demo),ant编译就不多说了,网上很多文章

得到core.jar添加到刚才的项目中,就没有问题了,可以直接运行,要先删掉之前安装过的apk。截几个图:

到这一步了,相信怎么将这个功能添加到自己项目中应该很简单了吧,源码都有了,,其实没有想得那么简单,整个工程的内容还是比较多的,因为这是一个完整的应用,不仅仅是一个demo,该有的功能都在里面了。

我新建一个自己的工程,叫MyZXingSample,就一个MainActivity,放个button,点击跳到扫码的页面。回到ZXing源码工程,可以发现,扫码页面叫CaptureActivity,根据这个线索,把这个java文件拷贝到我的工程中,因为是个Activity,所以别忘了要在manifest文件中注册一下,还有该要的权限都要加上。然后别忘了导入core.jar的包。放进来CaptureActivity.java会报一大堆错误,接下来就根据错误,去源码工程中找对应的类文件吧,就是这么死的方法,一个个找,一个个加,也不要盲目的加,这个过程中就可以去熟悉各个功能的实现,作用,方法等等。我弄完之后的项目结构:

其实也没有精简到哪里去,我把“设置”页面删了,“分享”功能删了,生成二维码的功能删了,还有其他一些觉得用不到都删了。还是挺费时的,还可以更精简,这一遍就当把功能模块和处理流程熟悉了,下次再精简一遍肯定比这次轻松。

好了,后面项目的二维码扫描功能,就用这个再精简一下用了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

世上没有绝望的处境,只有对处境绝望的人。

Android项目如何集成ZXing二维码扫描功能

相关文章:

你感兴趣的文章:

标签云: