二维码生成与扫描

原创 2015年07月08日 16:30:45

本文使用 zxing-android-embedded 这个开源项目实现 二维码扫描/生成 功能;

开发工具:android studio

1、如何将zxing-android-embedded添加到我们的项目中

    1.1  添加arr依赖包

    将以下代码添加到build.gradle文件中。

           

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
repositories {
    mavenCentral()
 
    maven {
        url "https://dl.bintray.com/journeyapps/maven"
    }
}
 
dependencies {    // Supports Android 4.0.3 and later (API level 15)
    compile 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
 
    // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
    // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
    compile 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
 
    // Convenience library to launch the scanning Activities.
    // It automatically picks the best scanning library from the above two, depending on the
    // Android version and what is available.
    compile 'com.journeyapps:zxing-android-integration:2.3.0@aar'
 
    // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
    // This mostly affects encoding, but you should test if you plan to support these versions.
    // Older versions e.g. 2.2 may also work if you need support for older Android versions.
    compile 'com.google.zxing:core:3.2.0'
    }


    注意:是app目录下的build.gradle文件

    wKiom1VZv2_AoMShAAHED7MMszI680.jpg


    1.2  通过gradle同步你的项目

        点击  "sync project with gradle files",android studio 将联网下载必要的文件。

        wKiom1VZwD6ys_tDAACaglVRJLU215.jpg

        到这一步为止,我们的项目已经可以使用 zxing-android-embedded 的代码了!







2、扫描二维码

    2.1  启动二维码扫描界面

            在Activity中,使用默认选项启动,可使用以下代码:

1
new IntentIntegrator(this).initiateScan(); //'this'是当前的Activity

      在Fragment中,使用默认选项启动,可使用以下代码

1
IntentIntegrator.forSupportFragment(this).initiateScan(); //'this'是当前的Fragment


                2.1.1 自定义选项,参考 IntentIntegrator


   2.2  接收扫描结果

    扫描完成,将会调用你的 onActivityResult 方法

    因此我们需要重写 onActivityResult 方法来获取扫描结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
 
    if (resultCode == Activity.RESULT_OK) {
        String contents = intent.getStringExtra("SCAN_RESULT");      //图像内容
        String format = intent.getStringExtra("SCAN_RESULT_FORMAT");    //图像格式
 
        // Handle successful scan
        Log.v("qr-code", contents + "####" + format);
        tv_content.setText(contents);
    else if (resultCode == Activity.RESULT_CANCELED) {
        // Handle cancel
    }
 
}

    到此步,完成了二维码扫描功能。

    如果扫描这张以下二维码图片,你将在logcat中得到这条输出语句 “www.google.com####QR_CODE”

wKioL1VZwXbzTnUcAAD6OBu5fNU596.jpg






3 、生成二维码

如果你需要将一段文本转换成二维码Bitmap,可参考以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private Bitmap generateQRCode(String qrCodeString){
    Bitmap bmp = null;    //二维码图片
    QRCodeWriter writer = new QRCodeWriter();
    try {
        BitMatrix bitMatrix = writer.encode(qrCodeString, BarcodeFormat.QR_CODE, 512512); //参数分别表示为: 条码文本内容,条码格式,宽,高
        int width = bitMatrix.getWidth();
        int height = bitMatrix.getHeight();
        bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
         
        //绘制每个像素
        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                bmp.setPixel(x, y, bitMatrix.get(x, y) ? Color.BLACK : Color.WHITE);
            }
        }
 
    catch (WriterException e) {
        e.printStackTrace();
    }
 
    return bmp;
}


本文出自 “happy coding...” 博客,请务必保留此出处http://jiataozhou.blog.51cto.com/7355162/1651712

Android中的二维码生成与扫描

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51013562 本文出自:【顾林海的博客】 前言月底离开公司...
  • GULINHAI12
  • GULINHAI12
  • 2016年04月27日 13:32
  • 6341

Android开发——Android中的二维码生成与扫描

0. 前言今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描。本篇旨在帮助有需求的同学快速完成二维码...
  • SEU_Calvin
  • SEU_Calvin
  • 2017年01月13日 16:04
  • 4219

android 使用开源库zxing生成二维码,扫描二维码

zxing是一个开放源码的,用java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的接口。可以实现使用手机的内置的摄像头完成条形码和二维码的扫描与解码。可以实现条形码和二维码的编码...
  • qq_16064871
  • qq_16064871
  • 2016年09月03日 13:46
  • 3357

iOS端使用二维码扫描(ZBarSDK)和生成(libqrencode)功能

如今二维码随处可见,无论是实物商品还是各种礼券都少不了二维码的身影。手机中二维码使用也很广泛,如微信等。正好最近项目中使用了二维码功能,此文为技术总结,转载注明出处。   首先说一下使用的版本 Xco...
  • luckydog2479
  • luckydog2479
  • 2013年09月24日 15:04
  • 5036

第三方开源库:Zxing实现扫描和生成二维码

使用BarCodeTest库文件 + zxing.jar 实现扫描和生成二维码的操作。 效果图: 需要: library:    BarCodeTest zxing.jar  配置Android...
  • ss1168805219
  • ss1168805219
  • 2016年04月19日 15:47
  • 2045

Android 二维码扫描和生成简单实现

这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解...
  • Greathfs
  • Greathfs
  • 2016年07月24日 18:08
  • 17177

LibZXing二维码扫描/生成库,基于ZXing最新版3.3的封装

LibZXing 二维码扫描、生成库转载请注明出处,http://blog.csdn.net/qq137722697 基于 ZXing:core_v3.3.0(最新版) 的封装,扫描速度快 可选相册中...
  • qq137722697
  • qq137722697
  • 2017年06月30日 21:59
  • 2663

二维码生成、扫描、图片识别(Zxing)

这样的例子虽然已经很多了,不过我在网上浏览了一圈,也没找到几个图库二维码图片识别例子,好的算法识别率才高。这里有一个好点的算法,算法不是我写的,只是作为整理记录,给众多安卓开发者一个方便。...
  • sw5131899
  • sw5131899
  • 2016年10月18日 17:02
  • 917

Android实现二维码的生成和扫描

现在越来越多的app都具有扫码功能了,扫码支付,扫码登录等等。。。如果要进入网页只需打开相机对准二维码一扫就可完成了,省去了输入网址的繁琐的步骤大大的提高了效率,下面就让我们自己的app也实现这个功能...
  • a_zhon
  • a_zhon
  • 2016年09月15日 23:09
  • 2059

二维码的生成与扫描

二维码: 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的; 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的...
  • qq_39923392
  • qq_39923392
  • 2018年01月03日 09:43
  • 29
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二维码生成与扫描
举报原因:
原因补充:

(最多只允许输入30个字)