Android利用ZXing掃描二維碼的實(shí)例代碼解析
相關(guān)閱讀:
Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問(wèn)題
此項(xiàng)目源碼地址:請(qǐng)點(diǎn)擊這里

看一下zxing的項(xiàng)目結(jié)構(gòu),我這里直接拿過(guò)來(lái)用的
看一下掃碼的activity:
package com.fanyafeng.barcode.activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.fanyafeng.barcode.R;
import com.fanyafeng.barcode.BaseActivity;
import com.fanyafeng.barcode.util.ImageUtil;
import com.fanyafeng.barcode.zxing.activity.CaptureActivity;
import com.fanyafeng.barcode.zxing.activity.CodeUtils;
//需要搭配baseactivity,這里默認(rèn)為baseactivity,并且默認(rèn)Baseactivity為包名的根目錄
public class ScanCodeActivity extends BaseActivity {
/**
* 掃描跳轉(zhuǎn)Activity RequestCode
*/
public static final int REQUEST_CODE = 111;
/**
* 選擇系統(tǒng)圖片Request Code
*/
public static final int REQUEST_IMAGE = 112;
/**
* 請(qǐng)求CAMERA權(quán)限碼
*/
public static final int REQUEST_CAMERA_PERM = 101;
private TextView tvResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan_code);
//這里默認(rèn)使用的是toolbar的左上角標(biāo)題,如果需要使用的標(biāo)題為中心的采用下方注釋的代碼,將此注釋掉即可
title = getString(R.string.title_activity_scan_code);
initView();
initData();
}
//初始化UI空間
private void initView() {
tvResult = (TextView) findViewById(R.id.tvResult);
}
//初始化數(shù)據(jù)
private void initData() {
}
@Override
public void onClick(View v) {
super.onClick(v);
switch (v.getId()) {
case R.id.btnScan:
Intent intent = new Intent(getApplication(), CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
// 本地掃描,識(shí)別相冊(cè)中的二維碼
// Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// intent.addCategory(Intent.CATEGORY_OPENABLE);
// intent.setType("image/*");
// startActivityForResult(intent, REQUEST_IMAGE);
break;
}
}
@Override
protected void onActivityResult(final int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/**
* 處理二維碼掃描結(jié)果
*/
if (requestCode == REQUEST_CODE) {
//處理掃描結(jié)果(在界面上顯示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
Toast.makeText(this, "解析結(jié)果:" + result, Toast.LENGTH_LONG).show();
tvResult.setText(result);
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(ScanCodeActivity.this, "解析二維碼失敗", Toast.LENGTH_LONG).show();
}
}
}
/**
* 選擇系統(tǒng)圖片并解析
*/
else if (requestCode == REQUEST_IMAGE) {
if (data != null) {
Uri uri = data.getData();
try {
CodeUtils.analyzeBitmap(ImageUtil.getImageAbsolutePath(this, uri), new CodeUtils.AnalyzeCallback() {
@Override
public void onAnalyzeSuccess(Bitmap mBitmap, String result) {
Toast.makeText(ScanCodeActivity.this, "解析結(jié)果:" + result, Toast.LENGTH_LONG).show();
tvResult.setText(result);
}
@Override
public void onAnalyzeFailed() {
Toast.makeText(ScanCodeActivity.this, "解析二維碼失敗", Toast.LENGTH_LONG).show();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
} else if (requestCode == REQUEST_CAMERA_PERM) {
Toast.makeText(this, "從設(shè)置頁(yè)面返回...", Toast.LENGTH_SHORT).show();
}
}
}
注釋中有本地二維碼的識(shí)別
以上所述是小編給大家介紹的Android利用ZXing掃描二維碼的實(shí)例代碼解析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android上使用ZXing識(shí)別條形碼與二維碼的方法
- Android中使用ZXing生成二維碼(支持添加Logo圖案)
- Android基于zxing的二維碼(網(wǎng)格)掃描 仿支付寶網(wǎng)格掃描
- Android基于google Zxing實(shí)現(xiàn)二維碼的生成
- Android實(shí)現(xiàn)基于ZXing快速集成二維碼掃描功能
- Android 超簡(jiǎn)易Zxing框架 生成二維碼+掃碼功能
- Android Zxing二維碼掃描圖片拉伸問(wèn)題的解決方法
- Android中利用zxing實(shí)現(xiàn)自己的二維碼掃描識(shí)別詳解
- Android Zxing二維碼掃描圖片拉伸的解決方法
- Android利用zxing生成二維碼的過(guò)程記錄
相關(guān)文章
Android10填坑適配指南(實(shí)際經(jīng)驗(yàn)代碼)
這篇文章主要介紹了Android10填坑適配指南(實(shí)際經(jīng)驗(yàn)代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Kotlin協(xié)程之Flow基礎(chǔ)原理示例解析
這篇文章主要為大家介紹了Kotlin協(xié)程之Flow基礎(chǔ)原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
android教你打造獨(dú)一無(wú)二的上拉下拉刷新加載框架
本篇文章主要介紹了android教你打造獨(dú)一無(wú)二的下拉刷新加載框架,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03
android 復(fù)制 粘貼 剪切功能應(yīng)用
網(wǎng)上有很多android 復(fù)制 粘貼 剪切功能的文章,只是放到自己的程序中不知道如何處理,現(xiàn)在尋得一可行方法,需要的朋友可以參考下2012-11-11
Android使用gallery和imageSwitch制作可左右循環(huán)滑動(dòng)的圖片瀏覽器
本文主要介紹了android使用gallery和imageSwitch制作可左右循環(huán)滑動(dòng)的圖片瀏覽器的示例代碼。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04

