天天看點

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

轉載請标明出處:

http://blog.csdn.net/zq2114522/article/details/51485680;

本文出自:【梁大盛的部落格】

zxing私人定制之一 初試掃碼

引:第一次接觸二維碼,當然二維碼原理懂得不多!那又何妨?有強大的zxing!

zxing代碼真的寫的很不錯!支援各種平台,代碼架構清晰…大神之作!

結構目錄介紹

zxing項目:https://github.com/zxing/zxing/tree/master

在寫此文章的時候Android app版本已經去到4.7.6了

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

當然第一時間把整項目下載下傳回來.很大!整個項目幾乎100+M.但是對于我們來說,用到的就幾M的東西.關注三個檔案夾!

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

看到目錄的結構基本都知道是使用eclipse建立的項目,畢竟現在已經是Android Studio的天下了.我們不可能還挂倒檔倒車吧?

接下來就是建立Android Studio項目!

建立Android Studio工程

目前采用是一邊導入項目一邊截圖的方式,這種方式是否沒效率?

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

Android Studio 版本:2.0Beta5

Jdk 版本: 1.8

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

項目名稱:zxing

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

預設MinmumSdk:10

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

預設Empty Activity

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

預設開發環境幫我們自動建立MainActivity,activity_main布局檔案.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

Android Studio 2.0建立項目預設是采用gradle-2.0.x 建構項目,可以看到使用gradle-2.0.x導緻項目出錯.最簡單的辦法就是将版本改成1.5.0.當然我也是這樣幹的.修改完同步一次錯誤消除.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

把zxing項目zxing-master\android\src\com\google\zxing\client\android目錄下存放的是和Android相關的代碼.拷貝到我們的項目裡面.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

删除MainActivity.java,Android 幫我們建立的資源檔案(因為我們無需使用開發環境為我們建立的資源).

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

把zxing項目zxing-master\android\res目錄下所有檔案拷到我們項目的res目錄下

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

建立core子產品,裡面放置和android平台無關的代碼.zxing的核心解碼代碼.

(zxing項目,core子產品主要負責二維碼的解碼工作.全部使用java語言編寫,于平台無關.作為一個子產品引入.app子產品就是純粹的android代碼了.分别一個是通用代碼一個是android,很清晰的代碼結構.是以zxing移植到各種平台也不是一件難事!)

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

删除開發工具為自動建立的代碼

把zxing項目zxing-master\core\src\main\java目錄下的代碼拷到我們項目core子產品的相應目錄下.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

app子產品依賴core子產品.給app添加子產品依賴.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

AndroidManifest.xml檔案安裝zxing照搬即可,但是要注意package屬性不要弄錯.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

到這裡嘗試編譯,發現還漏了一個類(CameraConfigurationUtils.java).然後發現報錯了.

zxing項目把CameraConfigurationUtils.java安置在android-core目錄下.因為都是和android相關的,把CameraConfigurationUtils.java拷到zxing.camera包下.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

再編譯,發現很多import都是無效的.因為代碼都是在zxing項目拷貝過來,很多import引用的包名來到我們的項目就不對了.使用把包名替換一下即可.

zxing項目中原包名:com.google.zxing.client.android

現項目包名:com.dsliang.zxing

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

引來新的問題,因為我Jdk是1.8.但是發現使用Jdk 1.8編譯會報錯,嘗試換成Jdk 1.7通過編譯.

但是在在代碼中一下子找不到那裡的問題.這下子終于正确無誤的編譯過了!

那就嘗試真機運作看看效果吧!不知道你激動了沒,反正我現在很激動!

事實上是,閃退了!閃退!閃退!

還好隻有布局檔案有些許問題.出現類無法找到.修改類名即可(因包名沒改過來).

我保證在我電腦這是最後一個錯!哈哈,如無意外,人品好的話應該可看到想看的結果!

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼
zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

附上:

編譯工具版本

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

嘗試掃一掃

zxing項目運作起來應該是這樣子的.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

或者是這樣的(掃描産品條形碼)

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

zxing很強大,支援很多種個格式的二維碼.

zxing私人定制之一 初試掃碼zxing私人定制之一 初試掃碼

當然更多的細節隻有在代碼裡面才知道…有興趣的同學請去看源碼把!

總結

第一篇沒寫什麼有價值的東西,隻是簡單的把代碼跑一次.剔除掉一些沒相關的代碼,但是有個一問題!

發現zxing代碼預設是橫屏模式麼?(風景模式)橫屏模式!市面上沒多少二維碼掃描工具是橫屏模式的吧?

微信就是最典型的,單單從使用角度上豎屏才是實用性最強的吧?

那麼對于我來說,接下來的第二篇關于zxing的檔案就是實作豎屏了!因為豎屏牽涉到camera稍稍會複雜,并且會穿插zxing掃描的原理和整體運作流程,掃描結果處理,camera預覽/相片分辨率等諸多問題

因為網絡問題一直沒法上傳到github,附上下載下傳位址:

http://download.csdn.net/detail/zq2114522/9531339

github:

https://github.com/dsliang/simple-zxing