Android 使用Zbar實(shí)現(xiàn)掃一掃功能
1.準(zhǔn)備工作:
1.實(shí)現(xiàn)掃一掃功能需要用到解碼庫(kù),才能識(shí)別出二維碼信息,
下面提供兩個(gè)開源庫(kù)地址:
ZBar:https://github.com/ZBar/ZBar
Zxing:https://github.com/zxing/zxing
2.熟悉Android自定義Camera
相關(guān)知識(shí)
2.具體使用
然而,當(dāng)我們打開上述的兩個(gè)庫(kù)后,可能發(fā)現(xiàn)并沒(méi)什么卵用.
因?yàn)楣俜降膬蓚€(gè)庫(kù),里面包含的東西實(shí)在太多的,而我們僅僅需要Android
中的小部分.
怎么辦捏,不用擔(dān)心,上面的鏈接其實(shí)只是我用來(lái)裝逼的,這樣才顯得我的逼格高.
在我們之前已經(jīng)有很多人為前輩做過(guò)掃一掃功能,所以分享了很多相應(yīng)的jar包,SO文件,我們只要拿過(guò)來(lái)用就行了.
本文用的是
Zbar
實(shí)現(xiàn)掃一掃,因?yàn)楦鶕?jù)本人對(duì)兩個(gè)庫(kù)的使用比較,發(fā)現(xiàn)Zbar
解碼比Zxing
速度要快,實(shí)現(xiàn)方式也簡(jiǎn)單.
效果圖
上面是打開百度地址的二維碼,各位大佬可以下載源碼運(yùn)行看下效果.
源碼:
集成:
打開源碼項(xiàng)目,找到里面的箭頭掃一掃M(jìn)odule
進(jìn)入大佬自己的Android studio項(xiàng)目,直接點(diǎn)擊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(); }
注: 請(qǐng)根據(jù)大佬自己項(xiàng)目的需求,配置右邊SO庫(kù)架構(gòu),對(duì)應(yīng)刪掉左邊多余的文件夾
源碼分析
ZbarCode結(jié)構(gòu)
CaptureActivity:為掃一掃界面的Activity;
AutoFocusManager:相機(jī)自動(dòng)聚焦管理類
CameraConfigurationManager:相機(jī)參數(shù)信息的操作類
CameraManager:為自定義相機(jī)操作的封裝,管理相機(jī)的打開,取景,參數(shù),回收處理.
PreviewCallback:圖像數(shù)據(jù)回調(diào)處理;
PreviewCallback:主線程Handler;
DecodeThread:解碼子線程;
DecodeHandler:子線程Handler;
BeepManager:掃碼操作滴的聲音處理;
流程:
掃一掃大致流程如下序列圖:
到此這篇關(guān)于Android 使用Zbar實(shí)現(xiàn)掃一掃功能的文章就介紹到這了,更多相關(guān)android 掃一掃內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android打開GPS導(dǎo)航并獲取位置信息返回null解決方案
最近在做一個(gè) Android 項(xiàng)目,需要用到GPS獲取位置信息,從 API 查了一下,發(fā)現(xiàn)獲取位置信息僅需極其簡(jiǎn)單的一句即可getLastKnownLocation(LocationManager.GPS_PROVIDER)郁悶的是一直為null,于是搜集整理下,曬出來(lái)與大家分享2013-01-01Android編程之語(yǔ)音識(shí)別實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程語(yǔ)音識(shí)別實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android語(yǔ)音識(shí)別的操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10Android實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Android Studio連接SQLite數(shù)據(jù)庫(kù)的登錄注冊(cè)實(shí)現(xiàn)
這篇文章主要介紹了Android Studio連接SQLite數(shù)據(jù)庫(kù)的登錄注冊(cè)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06monkeyrunner之電腦安裝驅(qū)動(dòng)(5)
這篇文章主要為大家詳細(xì)介紹了monkeyrunner之電腦安裝驅(qū)動(dòng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Flutter UI實(shí)現(xiàn)側(cè)拉抽屜菜單
這篇文章主要為大家詳細(xì)介紹了Flutter UI實(shí)現(xiàn)側(cè)拉抽屜菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03