Android 使用Zbar實現(xiàn)掃一掃功能
1.準(zhǔn)備工作:
1.實現(xiàn)掃一掃功能需要用到解碼庫,才能識別出二維碼信息,
下面提供兩個開源庫地址:
ZBar:https://github.com/ZBar/ZBar
Zxing:https://github.com/zxing/zxing
2.熟悉Android自定義Camera
相關(guān)知識
2.具體使用
然而,當(dāng)我們打開上述的兩個庫后,可能發(fā)現(xiàn)并沒什么卵用.
因為官方的兩個庫,里面包含的東西實在太多的,而我們僅僅需要Android
中的小部分.
怎么辦捏,不用擔(dān)心,上面的鏈接其實只是我用來裝逼的,這樣才顯得我的逼格高.
在我們之前已經(jīng)有很多人為前輩做過掃一掃功能,所以分享了很多相應(yīng)的jar包,SO文件,我們只要拿過來用就行了.
本文用的是
Zbar
實現(xiàn)掃一掃,因為根據(jù)本人對兩個庫的使用比較,發(fā)現(xiàn)Zbar
解碼比Zxing
速度要快,實現(xiàn)方式也簡單.
效果圖
上面是打開百度地址的二維碼,各位大佬可以下載源碼運(yùn)行看下效果.
源碼:
我是源碼
點擊下載偉大的Demo
集成:
打開源碼項目,找到里面的箭頭掃一掃M(jìn)odule
進(jìn)入大佬自己的Android studio項目,直接點擊File
->New
->Import Module
選擇Demo文件導(dǎo)入即可.
記得在App
的gradle
添加依賴. compile project(':zbarcode')
使用代碼
進(jìn)入掃一掃
Intent intent1 = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent1, QR_CODE);
獲取返回的結(jié)果
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == QR_CODE) { Bundle b=data.getExtras(); String result = b.getString(CaptureActivity.EXTRA_STRING); Toast.makeText(this, result + "", Toast.LENGTH_SHORT).show(); }
注: 請根據(jù)大佬自己項目的需求,配置右邊SO庫架構(gòu),對應(yīng)刪掉左邊多余的文件夾
源碼分析
ZbarCode結(jié)構(gòu)
CaptureActivity:為掃一掃界面的Activity;
AutoFocusManager:相機(jī)自動聚焦管理類
CameraConfigurationManager:相機(jī)參數(shù)信息的操作類
CameraManager:為自定義相機(jī)操作的封裝,管理相機(jī)的打開,取景,參數(shù),回收處理.
PreviewCallback:圖像數(shù)據(jù)回調(diào)處理;
PreviewCallback:主線程Handler;
DecodeThread:解碼子線程;
DecodeHandler:子線程Handler;
BeepManager:掃碼操作滴的聲音處理;
流程:
掃一掃大致流程如下序列圖:
到此這篇關(guān)于Android 使用Zbar實現(xiàn)掃一掃功能的文章就介紹到這了,更多相關(guān)android 掃一掃內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android打開GPS導(dǎo)航并獲取位置信息返回null解決方案
最近在做一個 Android 項目,需要用到GPS獲取位置信息,從 API 查了一下,發(fā)現(xiàn)獲取位置信息僅需極其簡單的一句即可getLastKnownLocation(LocationManager.GPS_PROVIDER)郁悶的是一直為null,于是搜集整理下,曬出來與大家分享2013-01-01Android Studio連接SQLite數(shù)據(jù)庫的登錄注冊實現(xiàn)
這篇文章主要介紹了Android Studio連接SQLite數(shù)據(jù)庫的登錄注冊實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06