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

搜了一下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二维码扫描功能相关推荐

  1. Android 集成zxing二维码扫描、自定义

    项目主要有zxing的基本使用,包含扫描回调.连续扫描.自定义扫描框: 一.依赖库 implementation 'com.journeyapps:zxing-android-embedded:4.3 ...

  2. Android实现二维码扫描功能(一)ZXing插件接入

    简介 关于Android扫描二维码的功能实现,网上有很多相关资料.在对比之后,选用了前辈了修改过的ZXing直接接入到项目中,特制作此demo,介绍整个过程. (最新更新)本篇文章讲解的接入方法对部分 ...

  3. Android 基于Zxing二维码扫描的光速实现

    Android 十分钟光速实现二维码扫描 前言 在项目中要使用到二维码的相关内容,我们第一时间想到的是使用大名鼎鼎的zxing或者ZBar开源框架: github-zxing官方库的地址 github ...

  4. Android实现二维码扫描功能(四)-ZXing识别图片二维码,相册选图

    简介 上一篇 Android实现二维码扫描功能(三)-闪光灯控制介绍了光线较弱情况下开启闪光灯来辅助二维码识别的方法. 本篇我们介绍如何识别相册中的图片(含二维码) 动态演示 使用模拟器录制了动画演示 ...

  5. Android实现二维码扫描功能-ZXing识别图片二维码,相册选图

    文章目录 1.演示 2.权限问题 3.实现步骤 4.工具类 5.图片Uri处理(重要更新) 1.演示 2.权限问题 部分朋友在打开相册时遇到读写权限未授权的问题,我在开发的时候没有遇到,也没有注册读写 ...

  6. Android直播带货系统中如何实现二维码扫描功能

    自李佳琦的出现将直播带货成功的引向了"巅峰",为了响应众平台和用户的需求,开发Android直播带货系统成为当下的开发热潮.那么在平时的直播软件中,登录.分享.支付等场景中经常出现 ...

  7. 使用安卓实现一个二维码扫描功能(基于Android Studio)

    二维码扫描使用很广泛,在这里记录二维码扫描的功能,需要导入第三方的类库. 步骤一:在项目中导入第三方的类库,导入方法:往Android Studio中导入第三方类库文件这篇博客中有详细记录 步骤二:定 ...

  8. zxing二维码扫描预览变形的解决方案

    -----------------------------------2018.6.1更新--------------------------------------- 附上github地址: htt ...

  9. 自定义ZXing二维码扫描界面并解决取景框拉伸等问题

    自定义ZXing二维码扫描界面并解决取景框拉伸等问题 参考文章: (1)自定义ZXing二维码扫描界面并解决取景框拉伸等问题 (2)https://www.cnblogs.com/tommylemon ...

最新文章

  1. 无缓冲channel
  2. 好用的 Abyss Web Server
  3. learning hdmi edid protocol
  4. Windows下Caffe-SSD编译
  5. 蓝桥杯 之 基础练习10:十进制转十六进制
  6. 索引体积_第16期:索引设计(MySQL 的索引结构)
  7. Linux学习总结(55)——Linux 运维常用脚本
  8. 独辟蹊径品内核 轻松领悟读书高境界
  9. smarty 对数据库的简单操作。
  10. ExtJS TreeGrid的使用方法
  11. CHIP-seq 分析笔记
  12. 目标检测之非极大值抑制(NMS)
  13. 如何使用阿里云进行人脸和身份证头像验证比对(人证核验接口API)--java
  14. xiecheng_spider
  15. 微信Web APP应用
  16. 戴尔硬件服务器参数,戴尔_PowerEdge R540_机架式服务器参数_服务器推荐购买 | Dell 中国大陆...
  17. 北京峰会系列二|基于SPDK的UDisk全栈优化
  18. [体感游戏]关于体感游戏的一些思考(四) --- 克隆战争!
  19. 数组名传参(pass by reference)
  20. Decimal是什么类型

热门文章

  1. yah3c在ubuntu下面的联网之路
  2. python谐音梗_mPaaS x Menxlab | 1024程序员节:Talk is cheap,Show me the AppID
  3. VS2017安装教程(详细版)
  4. 使用http-server开启一个本地服务器
  5. 优化OpenLayers加载ArcGIS切片服务的解决方案
  6. 项目中期检查会议和进度对接
  7. 三星大中华区总裁称Galaxy S III提前至4月份发布
  8. 基础篇 —— 树莓派换源
  9. 通过蔡勒公式实现通过年月日求出星期几
  10. 西部数码域名去掉html,西部数码虚拟主机网页到网页的301重定向跳转方法