欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android利用ZXing掃描二維碼的實(shí)例代碼解析

 更新時(shí)間:2016年12月12日 11:36:08   作者:樊亞風(fēng)  
這篇文章主要介紹了Android利用ZXing掃描二維碼的實(shí)例解析,代碼簡(jiǎn)單易懂,非常不錯(cuò),需要的朋友可以參考下

相關(guān)閱讀:

Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題

此項(xiàng)目源碼地址:請(qǐng)點(diǎn)擊這里

這里寫圖片描述

看一下zxing的項(xiàng)目結(jié)構(gòu),我這里直接拿過來用的

這里寫圖片描述 

看一下掃碼的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è)置頁面返回...", Toast.LENGTH_SHORT).show();
    }
  }
}

注釋中有本地二維碼的識(shí)別

以上所述是小編給大家介紹的Android利用ZXing掃描二維碼的實(shí)例代碼解析,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android List刪除重復(fù)數(shù)據(jù)

    Android List刪除重復(fù)數(shù)據(jù)

    這篇文章主要介紹了Android List刪除重復(fù)數(shù)據(jù)的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-06-06
  • Android NDK開發(fā)(C語言--動(dòng)態(tài)內(nèi)存分配)

    Android NDK開發(fā)(C語言--動(dòng)態(tài)內(nèi)存分配)

    這篇文章主要介紹了Android NDK開發(fā) C語言--動(dòng)態(tài)內(nèi)存分配
    2021-12-12
  • Android開發(fā)設(shè)置RadioButton點(diǎn)擊效果的方法

    Android開發(fā)設(shè)置RadioButton點(diǎn)擊效果的方法

    這篇文章主要介紹了Android開發(fā)設(shè)置RadioButton點(diǎn)擊效果的方法,詳細(xì)分析了Android開發(fā)中RadioButton屬性功能及相關(guān)設(shè)置技巧,需要的朋友可以參考下
    2017-06-06
  • android計(jì)算器實(shí)現(xiàn)兩位數(shù)的加減乘除

    android計(jì)算器實(shí)現(xiàn)兩位數(shù)的加減乘除

    這篇文章主要為大家詳細(xì)介紹了android計(jì)算器實(shí)現(xiàn)兩位數(shù)的加減乘除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Android實(shí)現(xiàn)多段顏色進(jìn)度條效果

    Android實(shí)現(xiàn)多段顏色進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多段顏色進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 淺談Android硬件加速原理與實(shí)現(xiàn)簡(jiǎn)介

    淺談Android硬件加速原理與實(shí)現(xiàn)簡(jiǎn)介

    這篇文章主要介紹了淺談Android硬件加速原理與實(shí)現(xiàn)簡(jiǎn)介,本文嘗試從底層硬件原理,一直到上層代碼實(shí)現(xiàn),對(duì)硬件加速技術(shù)進(jìn)行簡(jiǎn)單介紹,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android 在程序運(yùn)行時(shí)申請(qǐng)權(quán)限的實(shí)例講解

    Android 在程序運(yùn)行時(shí)申請(qǐng)權(quán)限的實(shí)例講解

    下面小編就為大家分享一篇Android 在程序運(yùn)行時(shí)申請(qǐng)權(quán)限的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • RecyclerView的萬能分割線

    RecyclerView的萬能分割線

    RecyclerView 是Android L版本中新添加的一個(gè)用來取代ListView的SDK,它的靈活性與可替代性比listview更好。本文重點(diǎn)給大家介紹RecyclerView的萬能分割線的知識(shí),非常不錯(cuò),感興趣的朋友一起看下吧
    2016-07-07
  • Android圖片選擇器ImageEditContainer

    Android圖片選擇器ImageEditContainer

    這篇文章主要為大家詳細(xì)介紹了Android圖片選擇器ImageEditContainer的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • DataBinding onClick的七種點(diǎn)擊方式

    DataBinding onClick的七種點(diǎn)擊方式

    這篇文章主要給大家介紹了關(guān)于DataBinding onClick的七種點(diǎn)擊方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論