QR Code 二维码的生成与扫描
2017-12-28 19:31
711 查看
前言
现在大街小巷、各大网站都有二维码的踪迹,不管是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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView();//获取控件 //生成二维码 codeMake.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取输入框输入的信息 String message = codemesssage.getText().toString(); //使用bitmap产生一个logo,当然,也可以不带logo Bitmap logoBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); //param1 二维码信息 param2 宽 param3 高 param4 logo Bitmap qrCode = EncodingUtils.createQRCode(message, 600, 600, logoBitmap); //将生成的二维码赋值给bitmap codeimage.setImageBitmap(qrCode); } }); //扫描二维码 codeScan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //调用系统相机,扫描信息 startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0); } }); } //获取返回信息 @Override protected 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,让我们不再劳累.
相关文章推荐
- Cordova各个插件使用介绍系列(二)—$cordovaBarcodeScanner扫描二维码与生成二维码
- 生成 扫描二维码
- 使用Google ZXing实现二维码的扫描和生成相关功能体系
- Android中二维码的生成与扫描
- 安卓实现二维码生成和扫描功能,扫描支持直接拍照扫码和相册图片扫码,还加了照明功能
- 使用ZXing实现二维码的扫描和生成带logo的二维码
- 扫描,生成二维码
- iOS开发二维码生成和扫描
- 使用PHP QR Code生成二维码
- iOS中 扫描二维码/生成二维码详解
- C#生成二维码、调用摄像头扫描二维码
- AVFoundation框架实现二维码的扫描、二维码的生成
- php生成二维码的类库:PHP QR Code下载及使用方法
- iOS开发--生成二维码及扫描二维码(原生)
- 实现手机扫描二维码页面登录,类似web微信-第二篇,关于二维码的自动生成
- 二维码的生成,扫描(ZXing开源的依赖库)
- 使用PHP QR Code生成二维码
- laravel生成微信公众号带参数二维码并响应扫描带参数二维码
- 实现扫描二维码和生成带logo的二维码
- 二维码的扫描和生成二维码