二維碼開源項目ZXing在android studio項目中的應用以及portrait豎屏模式的更改


開發環境:Android Studio 1.4 Beta2

     ZXing 3.2.1

       SDK API22

一、簡介

  ZXing是一個著名的二維碼開源項目,最近項目需要添加掃一掃功能,網上找實現方法后決定用ZXing,項目主頁:https://github.com/zxing/zxing。同步下來后,有幾個比較重要的目錄:

  core與android core是項目的核心目錄以及android開發需要的核心,基本上需要二次開發的話需要引用這兩個目錄;

  android 目錄:是一個叫做“條碼掃描器”(Barcode Scanner)的程序,是官方利用core與android core實現的一個掃碼程序;

  android-integration:提供了一種簡單的讓你在你的app中調用Barcode Scanner(簡稱BS)的實現,用它的話有一個弊端,需要在手機上同時安裝你的app和BS,掃碼是你的app會調用BS這個app;

  androidtest:就是一個利用android-integration調用BS的例子。

  與android開發相關的基本上就這5個目錄,在實際開發中,考慮到integration的弊端,我們舍棄這種方式,而是將ZXing整合到我們的項目中去,而考慮到引入core與android core來進行二次開發的周期比較長,決定直接在項目用引用Barcode Scanner。

二、作為引用導入BS

  在Android Studio中打開我們的項目A,將android文件夾拷貝到項目A目錄下,重命名為ZXing,依次點擊File->Project  Structure->Project Setting->Modules ,點擊+添加module,選擇Import Module,選中目錄下的ZXing文件夾,點擊添加:

  

然后繼續在Modules設置中將主Module的Dependencies中加入ZXing,加入完畢。運行后出現錯誤:

Error:(84, 33) java: -source 1.6 中不支持 diamond 運算符
(請使用 -source 7 或更高版本以啟用 diamond 運算符)

修改ZXing下build.gradle中javaversion版本,將1.6改為1.7:

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

 同時將ZXing的language level 改為7:

完成后項目運行無錯誤。

最后,在相應按鈕的監聽中添加跳轉處理,即可開啟二維碼掃描功能:

Intent intent = new Intent(AppMainFrame.this, CaptureActivity.class);
startActivity(intent);

注意刪除掉ZXing下Manifest中的
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM