Android中二维码的生成方法(普通二维码、中心Logo 二维码、及扫描解析二维码)

这篇文章主要介绍了Android中二维码的生成方法(普通二维码、中心Logo 二维码、及扫描解析二维码),需要的朋友可以参考下

首先声明我们通篇用的都是Google开源框架Zxing,要实现的功能有三个 ,生成普通二维码、生成带有中心图片Logo 的二维码,扫描解析二维码,直接上效果图吧

首先我们需要一个这样的 Zxing 的包类似于这样

接下来需要引入资源

1.drawable 中引入图片 navbar.png-600

2.layout中引入camera.xml、main.xml、qrcode_capture_page.xml

3.创建raw文件夹并添加beep.ogg 扫描声音

4.合并color.xml,copy ids.xml到values目录中

引入文件之后的效果图是这样的

接下来是 QRCodeUtil 类

 package com.chinasie.barcodescanplugin; import android.graphics.Bitmap; import android.graphics.Canvas; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; /** * Created by HanWeijia on 2017/2/4. */ public class QRCodeUtil { private static int QR_WIDTH = 300; private static int QR_HEIGHT = 300; /** * 生成二维码Bitmap * * @param content 内容 * @param widthPix 图片宽度 * @param heightPix 图片高度 * @param logoBm 二维码中心的Logo图标(可以为null) * @param filePath 用于存储二维码图片的文件路径 * @return 生成二维码及保存文件是否成功 */ public static Bitmap createQRImage(String content, int widthPix, int heightPix, Bitmap logoBm, String filePath) { try { if (content == null || "".equals(content)) { return null; } //配置参数 Map hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); //容错级别 hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); //设置空白边距的宽度 //  hints.put(EncodeHintType.MARGIN, 2); //default is 4 // 图像数据转换,使用了矩阵转换 BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, widthPix, heightPix, hints); int[] pixels = new int[widthPix * heightPix]; // 下面这里按照二维码的算法,逐个生成二维码的图片, // 两个for循环是图片横列扫描的结果 for (int y = 0; y  hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); //图像数据转换,使用了矩阵转换 BitMatrix bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints); int[] pixels = new int[QR_WIDTH * QR_HEIGHT]; //下面这里按照二维码的算法,逐个生成二维码的图片, //两个for循环是图片横列扫描的结果 for (int y = 0; y 

注释已经很明了了 ,这个工具类我就不多说了,就下来说说调用,当然也很简单

 package com.chinasie.barcodescanplugi

以上就是Android中二维码的生成方法(普通二维码、中心Logo 二维码、及扫描解析二维码)的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动