Android 使用Zbar實(shí)現(xiàn)掃一掃功能
1.準(zhǔn)備工作:
1.實(shí)現(xiàn)掃一掃功能需要用到解碼庫(kù),才能識(shí)別出二維碼信息,
下面提供兩個(gè)開(kāi)源庫(kù)地址:
ZBar:https://github.com/ZBar/ZBar
Zxing:https://github.com/zxing/zxing
2.熟悉Android自定義Camera相關(guān)知識(shí)
2.具體使用
然而,當(dāng)我們打開(kāi)上述的兩個(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)單.
效果圖

上面是打開(kāi)百度地址的二維碼,各位大佬可以下載源碼運(yùn)行看下效果.
源碼:
集成:
打開(kāi)源碼項(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ī)的打開(kāi),取景,參數(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)文章
使用RecyclerView實(shí)現(xiàn)點(diǎn)贊頭像疊加效果
這篇文章主要為大家詳細(xì)介紹了使用RecyclerView實(shí)現(xiàn)點(diǎn)贊頭像疊加效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
Android Studio如何獲取SQLite數(shù)據(jù)并顯示到ListView上
這篇文章主要介紹了Android Studio獲取SQLite數(shù)據(jù)并顯示到ListView上,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Android 日志系統(tǒng)Logger源代碼詳細(xì)介紹
本文主要介紹Android 日志系統(tǒng)Logger,這里整理了關(guān)于Android源碼的日志系統(tǒng)資料,有研究Android源碼的朋友可以參考下2016-08-08
Android使用AIDL實(shí)現(xiàn)兩個(gè)App間通信
這篇文章主要為大家詳細(xì)介紹了Android使用AIDL實(shí)現(xiàn)兩個(gè)App間通信,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
android通過(guò)配置文件設(shè)置應(yīng)用安裝到SD卡上的方法
在AndroidManifest.xml文件的manifest里面加上一句話,就可以把應(yīng)用安裝到SD卡上2013-11-11
Android開(kāi)發(fā)之a(chǎn)ctiviti節(jié)點(diǎn)跳轉(zhuǎn)
這篇文章主要介紹了Android開(kāi)發(fā)之a(chǎn)ctiviti節(jié)點(diǎn)跳轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2016-04-04
android MediaRecorder實(shí)現(xiàn)錄屏?xí)r帶錄音功能
這篇文章主要介紹了android MediaRecorder錄屏?xí)r帶錄音功能實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

