我所做的功能是點擊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中刪除依賴!
網絡的資源是無限的,感謝提供各種疑難問題解答的大佬們!!!