基于barcodescanner實現(xiàn)Android二維碼掃描功能
二維碼掃描現(xiàn)在成為一種非常常見的APP基礎功能,附錄1是我曾經(jīng)用過的二維碼/條形碼掃描開源項目,但是附錄1的項目集成和二次定制比較繁瑣和麻煩,因此可以發(fā)現(xiàn)不少人基于ZXing做了二次的開發(fā),并貢獻出這些項目,發(fā)到github上,其中barcodescanner就是這樣的項目,barcodescanner的github項目地址:https://github.com/dm77/barcodescanner ,barcodescanner簡化了ZXing的集成和二次定制難度,方便快速集成和開發(fā),并且掃描性能和結果比較穩(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="開/關燈" /> </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); //重新進入掃描二維碼
Toast.makeText(getApplicationContext(), "內容=" + 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);
}
}
不要忘記添加相機和閃光燈權限:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
代碼運行結果如圖:

附錄:Android實現(xiàn)基于ZXing快速集成二維碼掃描功能
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android實現(xiàn)二維碼掃描和生成的簡單方法
- Android上使用ZXing識別條形碼與二維碼的方法
- Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題
- 基于Android實現(xiàn)個性彩色好看的二維碼
- iOS和Android用同一個二維碼實現(xiàn)跳轉下載鏈接的方法
- Android編程實現(xiàn)二維碼的生成與解析
- Android基于google Zxing實現(xiàn)各類二維碼掃描效果
- Android平臺生成二維碼并實現(xiàn)掃描 & 識別功能
- Android項目實戰(zhàn)(二十八):使用Zxing實現(xiàn)二維碼及優(yōu)化實例
- Android基于google Zxing實現(xiàn)二維碼的生成
相關文章
Android ListView 滾動條的設置詳解及實例代碼
這篇文章主要介紹了 ListView等滾動條的設置詳解詳解及實例代碼的相關資料,需要的朋友可以參考下2017-02-02
Notification與NotificationManager詳細介紹
在Android系統(tǒng)中,發(fā)一個狀態(tài)欄通知還是很方便的。下面我們就來看一下,怎么發(fā)送狀態(tài)欄通知,狀態(tài)欄通知又有哪些參數(shù)可以設置2012-11-11
Android MenuItem 自定義長按事件的實現(xiàn)
這篇文章主要介紹了Android MenuItem 自定義長按事件的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08

