基于barcodescanner實(shí)現(xiàn)Android二維碼掃描功能
二維碼掃描現(xiàn)在成為一種非常常見的APP基礎(chǔ)功能,附錄1是我曾經(jīng)用過的二維碼/條形碼掃描開源項(xiàng)目,但是附錄1的項(xiàng)目集成和二次定制比較繁瑣和麻煩,因此可以發(fā)現(xiàn)不少人基于ZXing做了二次的開發(fā),并貢獻(xiàn)出這些項(xiàng)目,發(fā)到github上,其中barcodescanner就是這樣的項(xiàng)目,barcodescanner的github項(xiàng)目地址:https://github.com/dm77/barcodescanner ,barcodescanner簡化了ZXing的集成和二次定制難度,方便快速集成和開發(fā),并且掃描性能和結(jié)果比較穩(wěn)定,現(xiàn)在給出基于barcodescanner的二維碼掃描示例。
第一, 先引入對barcodescanner的引用,需要在build.gradle里面添加依賴:
compile 'me.dm7.barcodescanner:core:1.9'
compile 'me.dm7.barcodescanner:zxing:1.9'
第二, 寫布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <me.dm7.barcodescanner.zxing.ZXingScannerView android:id="@+id/scannerView" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/light" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="開/關(guān)燈" /> </RelativeLayout>
第三, 上層Java代碼:
package zhangphil.mgscanner; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Toast; import com.google.zxing.Result; import me.dm7.barcodescanner.zxing.ZXingScannerView; public class MainActivity extends Activity { private boolean mFlash; private ZXingScannerView mScannerView; private ZXingScannerView.ResultHandler mResultHandler = new ZXingScannerView.ResultHandler() { @Override public void handleResult(Result result) { mScannerView.resumeCameraPreview(mResultHandler); //重新進(jìn)入掃描二維碼 Toast.makeText(getApplicationContext(), "內(nèi)容=" + result.getText() + ",格式=" + result.getBarcodeFormat().toString(), Toast.LENGTH_SHORT).show(); } }; @Override public void onCreate(Bundle state) { super.onCreate(state); setContentView(R.layout.activity_main); mScannerView = (ZXingScannerView) findViewById(R.id.scannerView); mScannerView.setResultHandler(mResultHandler); findViewById(R.id.light).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toggleFlash(); } }); } @Override public void onResume() { super.onResume(); mScannerView.setResultHandler(mResultHandler); mScannerView.startCamera(); } @Override public void onPause() { super.onPause(); mScannerView.stopCamera(); } private void toggleFlash() { mFlash = !mFlash; mScannerView.setFlash(mFlash); } }
不要忘記添加相機(jī)和閃光燈權(quán)限:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
代碼運(yùn)行結(jié)果如圖:
附錄:Android實(shí)現(xiàn)基于ZXing快速集成二維碼掃描功能
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實(shí)現(xiàn)二維碼掃描和生成的簡單方法
- Android上使用ZXing識別條形碼與二維碼的方法
- Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題
- 基于Android實(shí)現(xiàn)個性彩色好看的二維碼
- iOS和Android用同一個二維碼實(shí)現(xiàn)跳轉(zhuǎn)下載鏈接的方法
- Android編程實(shí)現(xiàn)二維碼的生成與解析
- Android基于google Zxing實(shí)現(xiàn)各類二維碼掃描效果
- Android平臺生成二維碼并實(shí)現(xiàn)掃描 & 識別功能
- Android項(xiàng)目實(shí)戰(zhàn)(二十八):使用Zxing實(shí)現(xiàn)二維碼及優(yōu)化實(shí)例
- Android基于google Zxing實(shí)現(xiàn)二維碼的生成
相關(guān)文章
android TabHost(選項(xiàng)卡)的使用方法
Android中的選項(xiàng)卡是用TabHost實(shí)現(xiàn)的,下面我們用一個例子說明他的使用方法2013-11-11Suspend函數(shù)與回調(diào)的互相轉(zhuǎn)換示例詳解
這篇文章主要為大家介紹了Suspend函數(shù)與回調(diào)的互相轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android自定義view實(shí)現(xiàn)滑動解鎖效果
這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)滑動解鎖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05Gradle屬性設(shè)置及環(huán)境變量全面教程
這篇文章主要為大家介紹了Gradle屬性設(shè)置及環(huán)境變量的全面教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Android實(shí)現(xiàn)擴(kuò)展Menu的方法
這篇文章主要介紹了Android實(shí)現(xiàn)擴(kuò)展Menu的方法,涉及Android操作menu菜單的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10Android ListView 滾動條的設(shè)置詳解及實(shí)例代碼
這篇文章主要介紹了 ListView等滾動條的設(shè)置詳解詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02Notification與NotificationManager詳細(xì)介紹
在Android系統(tǒng)中,發(fā)一個狀態(tài)欄通知還是很方便的。下面我們就來看一下,怎么發(fā)送狀態(tài)欄通知,狀態(tài)欄通知又有哪些參數(shù)可以設(shè)置2012-11-11Android MenuItem 自定義長按事件的實(shí)現(xiàn)
這篇文章主要介紹了Android MenuItem 自定義長按事件的實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Android開發(fā)返回鍵明暗點(diǎn)擊效果的實(shí)例代碼
這篇文章主要介紹了Android開發(fā)返回鍵明暗點(diǎn)擊效果的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04