前言

  现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。
  最近因为工作需要使用相关技术,所以做了初步了解。今天主要是讲述如何使用ZXing库,在项目中要使用到二维码的相关内容,百度(原谅我还在用)之后得知一半都是使用Google的开源库 Zxing,但是网上多半的使用教程都是比较早的,这里给出我总结的一些基础代码和使用规则:

ZXing库

1、ZXing库介绍
 这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
2、ZXing库主要类
 下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:

  • CaptureActivity。这个是启动Activity 也就是扫描器。
  • CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。
  • DecodeThread 解码的线程。
  • com.google.zxing.client.android.camera 包,摄像头控制包。
  • ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。

这里附上ZXing库的官网下载地址:
ZXing官网下载地址

下载之后记得导入自己需要的module中并添加到gradle文件中!

那么,问题是:
如何生成一个二维码?

还是先把下载好的zxing库导入

//还是来个页面吧!!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.qrcodescan.MainActivity"><Button
        android:id="@+id/scan_code"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="扫描二维码"android:textSize="30sp" /><TextView
        android:textSize="40sp"android:id="@+id/scan_result"android:layout_width="match_parent"android:layout_height="150sp" /><EditText
        android:id="@+id/code_messsage"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请填写二维码信息" /><Button
        android:id="@+id/make_code"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="生成二维码"android:textSize="30sp" /><ImageView
        android:id="@+id/codeimage"android:layout_width="match_parent"android:layout_height="wrap_content" />
</LinearLayout>

效果图

逻辑实现

//有了布局,记得要把下载好的ZXing库导进module中才能使用
//下面的都是精髓了<只能实现生成和扫描哦,因为我还没有太大的使用需求!>
public class MainActivity extends AppCompatActivity {private Button codeScan;private TextView resultScan;private EditText codemesssage;private Button codeMake;private ImageView codeimage;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();//获取控件//生成二维码codeMake.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//获取输入框输入的信息String message = codemesssage.getText().toString();//使用bitmap产生一个logo,当然,也可以不带logoBitmap logoBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);//param1 二维码信息  param2 宽   param3  高  param4  logoBitmap qrCode = EncodingUtils.createQRCode(message, 600, 600, logoBitmap);//将生成的二维码赋值给bitmapcodeimage.setImageBitmap(qrCode);}});//扫描二维码codeScan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//调用系统相机,扫描信息startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0);}});}//获取返回信息@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == Activity.RESULT_OK) {//获取到正确信息Bundle bundle = data.getExtras();String result = bundle.getString("result");resultScan.setText(result);//给TextView赋值扫描到的信息} else if (resultCode == RESULT_CANCELED) {//扫描失败,提示Toast.makeText(MainActivity.this, "未扫描到信息", Toast.LENGTH_SHORT).show();}}//获取所有的控件private void initView() {codeScan = (Button) findViewById(R.id.scan_code);resultScan = (TextView) findViewById(R.id.scan_result);codemesssage = (EditText) findViewById(R.id.code_messsage);codeMake = (Button) findViewById(R.id.make_code);codeimage = (ImageView) findViewById(R.id.codeimage);}
}

这就完成了最基本的二维码的操作!
感谢ZXing,让我们不再劳累.

QR Code 二维码的生成与扫描相关推荐

  1. QR code 二维码基础入门教程(二)

    QR code 二维码基础入门教程(二) 承接上文,让我们继续下面的步骤 纠错码编码 先说说纠错容量 纠错码可以纠正两种错误: 拒读错误(错误码位置已知),是一个没有扫到或者无法译码的符号字符,需要一 ...

  2. QR code 二维码基础入门教程

    QR code 二维码基础入门教程 本文为 QR Code Tutorial: Introduction 的总结,详细内容请查看原文 Introduction History and Informat ...

  3. QR code(二维码)

    QR code QR码(缩写为Quick Response code)是一种矩阵条码(或二维条码)的商标,于1994年首次为日本汽车行业设计.条形码是一种机器可读的光学标签,它包含有关所附物品的信息. ...

  4. 二维码的生成和扫描识别

    一.二维码的生成  1 #import "ViewController.h"  2 #import "QRCodeGenerator.h"  3   4 @in ...

  5. IOS 开发笔记——二维码的生成和扫描

    开发当中我们经常遇到二维码的生成或者说是扫描,但是苹果官方给我们准备好了这些 API,那么接下来作者为大家详细讲述一下二维码 在二维码的生成中,我们要用到一个类CIFilter,这是系统的一个滤镜类, ...

  6. vb/java/c# 生成code128 条码/QR Code二维码 导出excel

    java/c#生成条形码/二维码图片,导出excel 会用到POI/NPOI,BarcodeLib.ZXing插件. code128 如果不使用插件,也可使用下面vb/c#代码生成含有校验的条码文本, ...

  7. 嵌入式平台QR code二维码生成

    二维码生成文件下载 链接:https://pan.baidu.com/s/1PTciVTu-K_cOR6QK9OPwkg 提取码:se5e 将下载好的文件解压并加入工程(以Keil平台为例) 生成二维 ...

  8. QR code二维码简介及Qrencode库的移植与使用

    现在生活中,二维码可以说是无处不在,微信扫码支付,支付宝扫码支付,就连贴小广告的都带上了二维码了.之前一直想去了解一下,还是太懒了,就没去,现在项目中需要用到这东西,正好借此机会了解一下. 上网一查, ...

  9. QR Code二维码

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型. 在代码编制上巧妙 ...

最新文章

  1. 腾讯云centos7搭建javaweb服务器(本人亲自经历,详细)
  2. 函数学习-delattr()
  3. 12.C++:strtol() 字符串转长整型函数
  4. 第四话 想不到办法,就研究规律 ver1.0
  5. ant设置国际化设置为中文
  6. java获取参数编码_java获取接口数据编码问题
  7. BZOJ3236[Ahoi2013]作业——莫队+树状数组/莫队+分块
  8. SSAS的MDX语句整理
  9. 奇讯新游 PHP,QXPLAY
  10. ubuntu14.04安装V-REP和用户使用手册
  11. IDEA用maven创建springMVC项目和配置(XML配置和Java配置)
  12. 测试家里网速用什么软件,怎么测试网速,测试网速用什么软件
  13. Qt如何调用xlsl的方法!
  14. [JAVA面试] java面试
  15. 蘑菇街服务器信息,蘑菇街开放平台
  16. 毕业论文开题报告模板
  17. .rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.5.0/lib/cocoapods/executable.rb:89: warning: Insecure
  18. python 常用的内置模块
  19. 【博客628】k8s pod访问集群外域名原理以及主机开启了systemd-resolved的不同情况
  20. 客户关系管理系统PRD编写

热门文章

  1. 再见IOS调试,如何不用苹果系统调试ios
  2. 怎么用计算机打出错误,打印机出现错误状态是怎么回事,详细教您解决办法
  3. R数据分析:潜在转化分析LTA的做法和解释(一)
  4. Bitser-压缩软件的新选择
  5. 计算机室内设计 cad 论文,cad室内设计 毕业论文
  6. 基于springboot+vue的高考填报志愿综合参考系统
  7. 短视频正当时,如何让你的App快速构建视频创作能力?
  8. 基于人体姿态的时空动作检测(cpu fps33+)
  9. 自定义Switch背景带文字
  10. 2023通信、网络和信息系统国际大会(CNIS 2023)