现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头的库,而我们常用的扫码功能就是其中之一。
但是因为zxing的功能太强大了,包含了很多我们用不上的功能,所以一般都会抽取其中的扫码功能单独使用,这个抽取的过程还是有点麻烦的,但是已经有开发者为我们省去了这个过程,直接使用zxing-android-embedded 文件库,来实现扫码功能。
以AndrioSdudio开发环境为例,实现扫码功能,具体操如下:

一、扫描一维码或二维码

  1. 新建工程文件
    2. 选择Basic Activity模板,也可以选择其它类型模板页,完成新建工程项目。

3.在新建工程建里,打开MainActivity文件。

在MainActivity库里引入:
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

如下图:

4.打开项目中 Build gradle文件

在dependencies 中加入以下代码:

implementation ‘com.journeyapps:zxing-android-embedded:3.5.0@aar’
implementation ‘com.google.zxing:core:3.2.1’
如下图所示:

在res\layout\content_main.xml文件中加入以下代码:

5.在MainActivity文件中,加入相应代码:
private Button buttonscan;
如下图所示:

同时,在onCreate中加入下面代码:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, “Replace with your own action”, Snackbar.LENGTH_LONG)
.setAction(“Action”, null).show();
}
});

    //扫描BUTON事件buttonscan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);integrator = new IntentIntegrator(MainActivity.this);integrator.setPrompt(" "); //底部的提示文字,设为""可以置空integrator.setCameraId(0); //前置或者后置摄像头integrator.setBeepEnabled(false); //扫描成功的「哔哔」声,默认开启integrator.initiateScan();}});

现在可以RUN一下了。

注:如果出现代码中有红色错误提示,程序不能运行。可以通过多编译几下程序,问题如仍未解决,可关闭工程后,重新打开。

如果代码中没有别的错误信息提示,便可出现以下:

点击扫码按钮后,出现横屏扫码界面,如下:

此时可以扫描二维码,但目前还没有得到扫描的结果。

为此,我们加入以下代码,通过 onActivityResult的方法获取 扫描回来的值。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode,resultCode,data);
if(intentResult != null) {
if(intentResult.getContents() == null) {
Toast.makeText(this,“内容为空”,Toast.LENGTH_LONG).show();
} else {
// ScanResult 为 获取到的字符串
String ScanResult = intentResult.getContents();
Toast.makeText(this, ScanResult,Toast.LENGTH_LONG).show();
edittext.setText(ScanResult);
}
} else {
super.onActivityResult(requestCode,resultCode,data);
}
}

再次运行程序,通过扫描后,可得到扫码结果,如下图:

以上是扫码全部内容。

如果想有微信竖屏和相关界面,还需要对库中代码做相应改动,请继续看第二部分。

Andro Studio 基于Zing一维码二维码扫描代码相关推荐

  1. STM32F407获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  2. STM32H750获取OV5640摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV5640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对500万像素OV5640摄像头进行图像捕获,并通过串口将数 ...

  3. STM32F407获取OV2640摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...

  4. STM32H750获取OV2640摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...

  5. STM32H750获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  6. halcon视觉 一维、二维码的区别-@龙熙视觉培训李杰

    一维码(条形码) 一维条码即指条码条和空的排列规则,常用的一维码的码制包括:EAN码.39码.交叉25码.UPC码.128码.93码,ISBN码,及Codabar(库德巴码)等. 条码是由一组规则排列 ...

  7. 基于springboot的食品二维码溯源系统

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于springboot的食品二维码溯源系统. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代,随着信息技 ...

  8. 【第 07 章 基于主成分分析的人脸二维码识别MATLAB深度学习实战案例】

    基于主成分分析的人脸二维码识别MATLAB深度学习实战案例 人脸库 全套文件资料目录下载链接–>传送门 本文全文源码下载[链接–>传送门] 如下分析: 主文件 function varar ...

  9. 前端条码打印方案(表格+中文+一维码+二维码)

    前言 条码打印不同于普通打印机,条码大小各不相同,需要针对不同标签贴纸开发不同的样式 1. 条码打印的两种方案: 后端ZPL指令打印 前端调用浏览器打印 2. 优缺点分析: 优点 缺点 后端ZPL指令 ...

最新文章

  1. python代码写完怎么运行-Python 项目代码写完了,然后怎么打包和发布?
  2. Java String 字符串
  3. Android逆向与病毒分析
  4. 概率dp——处理分母为0的情况hdu3853
  5. scratch desktop的基本使用 - 如何使用积木
  6. 神奇的折纸艺术!无限翻转完全停不下来
  7. ASP.net Table 控件
  8. 15分钟,教你用Python爬网站数据,并用BI可视化分析!
  9. sql给已有数据中的表添加字段并且填充不同的数据
  10. python生成复合饼图
  11. android+像素转换工具,MCPE像素画生成器
  12. 2020-03-18HTML
  13. 莫烦Python--Tensorflow Day5
  14. Serpent.AI - 游戏代理框架(Python)
  15. 什么是人工智能,人工智能的求职条件是什么?
  16. hadoop与spark大数据平台培训推荐书目
  17. 2022GCVC全球人工智能视觉产业与技术大会在青岛圆满落幕
  18. Java 处理PDF图章(印章)——图片图章、动态图章
  19. 计算机英语在线学习,英语单词记忆法超强记忆_免费背单词软件电脑版
  20. 修改apiserver证书

热门文章

  1. HDU6069(区间筛)
  2. 实验记录 | 为什么mtDNA的fastq数据会比对到常染色体上?
  3. 仿照中国银行页面进行编写,主要涉及到float,定位
  4. python酒店数据分析_python数据分析实战——AirBnb用户分群
  5. html投影电脑,无线投影小PC 联想投影电脑610S评测
  6. ſ xf(sinx)dx 中的f(sinx)到底是什么
  7. Git项目管理修改项目名称
  8. Unity3D制作3维立体小游戏
  9. (load和initialize)不要被你的log迷惑了你对问题的判断
  10. Failed to decode response: zlib_decode(): data error Retrying with degraded;