这篇文章主要介绍了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; } //配置参数 Maphints = 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技术站其它相关文章!