我所做的功能是点击ImageView后进行二维码扫描,并将扫描完后得到的值自动输入到Editview中。在实现的过程中由于对zxing开源库的不熟悉,浪费了很多时间,
在遇到问题的同时也查阅了相关资料,现将自己的开发过程中遇到的问题以及解决方法展示。
在开发的过程中,参考了博客https://www.cnblogs.com/xch-yang/p/9418493.html,特此感谢!
首先引入jar包
这个jar包我是从别人的源码中下载的,当然也可以去github下载整个zxing项目,地址:https://github.com/zxing/zxing
在分支里面选择tag,在这里可以选择最新版本
下载zxing的核心jar包。地址:
http://repo1.maven.org/maven2/com/google/zxing/core/
把zxing中的文件copy到项目中
、
导入相关的资源
copy res底下的相关资源文件,如下:
drawable、drawable-hdpi和layout
raw文件和values文件
在copy values中的文件时,不要进行覆盖,在原有的文件上进行添加
导入的包的文件逐个打开,将错误进行修改,修改为自己的包
capture.xml的ViewfinderView改成自己包名下的
最后要在Manifest中添加权限,我这里设置的权限较多,可根据自己的需求修改
最后需要编写逻辑代码
首先是扫码功能:
接下来是值的回调,需要对onActivityResult进行重写。
此时已经基本实现了功能,由于是开源的,所以如果有特殊的需求可以对zxing的文件进行修改。
如果在测试时遇到了Error: Program type already present: com.google.zxing.BarcodeFormat报错,是由于包的导入重复了,
对重复的包进行删除即可,同时别忘了在gradle中删除依赖!
网络的资源是无限的,感谢提供各种疑难问题解答的大佬们!!!