標籤:
原文網址:https://github.com/SkillCollege/QrCodeScan
QrCodeScan
這是Android手機用戶端關於二維碼掃描的源碼,使用了高效的ZBar解碼庫,並修複了中文亂碼。
融合了ZXing代碼(使用其中的相機管理功能)。
一、 使用開源ZXing掃描的缺點
1、原始代碼是橫屏模式,儘管可以改成豎屏,但是掃描介面的自訂和多螢幕適配不好做
2、有效掃描地區不好控制,可能是我自己技術不成熟,沒找到好方法
3、ZXing是Java寫的,對二維碼的解析效率沒有ZBar快
二、 使用iOS開發經常使用的ZBar掃描的缺點
1、 ZBar是C實現的二維碼解析,但是在解析中文時會亂碼
2、 ZBar的掃描介面對相機的控制沒有ZXing封裝的好
基於以上一些原因,筆者決定何不將二者結合起來,用ZXing來控制網路攝影機取得映像,用ZBar來解析掃描到的資料,最終形成目前的項目。
三、 開發步驟
首先剝離ZXing的Camera控制碼,得到掃描的未經處理資料,ZXing的ViewFindView個人感覺不是很好,索性我就把它去掉了,
直接通過xml檔案進行布局,多螢幕的適配瞬間就解決了。並且對於掃描雷射線的動畫效果,橫豎屏的控制都只需要稍稍變換代碼即可實現。 對於ZBar的中文亂碼應該怎麼解決呢?網上找了之後發現需要修改ZBar的qrcodetxt.c將裡面的編碼ISO-8859-1改成GBK就可以了
四、 使用方法
1、 Eclipse直接匯入運行即可
2、 如果是在Android Studio運行,出現
Couldn‘t load libzbar from loader dalvik.system.PathClassLoader findLibrary returned null異常的解決方案是:A. 把so檔案放到如下目錄(src/main/jniLibs/armeabi/libzbar.so)|src|--main/|----java/|----res/|----jniLibs/|------armeabi|--------libzbar.soB.Rebuild Project注意:如果是想要在自己的項目中直接使用項目提供的ZbarManager源碼。需要保持包名一致(com.zbar.lib)
感謝@Houny提供的Android Studio下運行異常解決方案。
【轉】Android手機用戶端關於二維碼掃描的源碼--不錯