国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

基于barcodescanner實現Android二維碼掃描功能

2019-10-22 18:32:29
字體:
來源:轉載
供稿:網友

二維碼掃描現在成為一種非常常見的APP基礎功能,附錄1是我曾經用過的二維碼/條形碼掃描開源項目,但是附錄1的項目集成和二次定制比較繁瑣和麻煩,因此可以發現不少人基于ZXing做了二次的開發,并貢獻出這些項目,發到github上,其中barcodescanner就是這樣的項目,barcodescanner的github項目地址:https://github.com/dm77/barcodescanner ,barcodescanner簡化了ZXing的集成和二次定制難度,方便快速集成和開發,并且掃描性能和結果比較穩定,現在給出基于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,二維碼,barcodescanner


以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安义县| 光山县| 佛山市| 武胜县| 伊吾县| 盐山县| 苍溪县| 泾源县| 旌德县| 兖州市| 宿州市| 汪清县| 郸城县| 巩义市| 老河口市| 凤阳县| 昂仁县| 济南市| 阿尔山市| 界首市| 张家川| 万安县| 余干县| 陆丰市| 堆龙德庆县| 武夷山市| 永吉县| 吴桥县| 阜阳市| 三亚市| 阿荣旗| 上蔡县| 汕头市| 天水市| 深圳市| 泾源县| 云林县| 岳西县| 武城县| 桑植县| 远安县|