android|生成二维码qrcode(android)

ops/2025/3/31 3:10:53/

1.build.gradle

    implementation 'com.google.zxing:core:3.4.1'

引入zxing库 只是生成的话引入core库就可以了

2.封装方法

java">
import android.graphics.Bitmap;
import android.graphics.Color;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.util.HashMap;
import java.util.Map;public class QRcodeUtil {private static volatile QRcodeUtil mInstance;private QRcodeUtil(){}public static QRcodeUtil getInstance() {if (mInstance == null) {synchronized (QRcodeUtil.class) {if (mInstance == null) {mInstance = new QRcodeUtil();}}}return mInstance;}public  Bitmap generateQRCode(String content, int width, int height) {QRCodeWriter writer = new QRCodeWriter();try {// 设置容错率Map<EncodeHintType, Object> hints = new HashMap<>();hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 设置字符集hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");// 生成二维码的位矩阵BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints);// 将位矩阵转换为像素数组int[] pixels = new int[width * height];for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {pixels[y * width + x] = bitMatrix.get(x, y)? Color.BLACK : Color.WHITE;}}// 创建Bitmap并设置像素Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels, 0, width, 0, 0, width, height);return bitmap;} catch (WriterException e) {e.printStackTrace();return null;}}}


http://www.ppmy.cn/ops/170437.html

相关文章

(UI自动化测试web端)第二篇:元素定位的方法_css定位之ID选择器

看代码里的【find_element_by_css_selector( )】( )里的表达式怎么写&#xff1f; 文章介绍了第一种写法id选择器&#xff0c;其实XPath元素定位要比CSS好用&#xff0c;原因是CSS无法使用下标&#xff08;工作当中也是常用的xpath&#xff09;&#xff0c;但CSS定位速度比XPat…

服务器数据恢复—Raid5热备盘同步中断的数据恢复案例

服务器数据恢复环境&#xff1a; 某公司一台存储上有一组由15块硬盘组建的raid5阵列。raid5阵列上层是一个xfs裸分区&#xff0c;起始位置是0扇区。 服务器故障&#xff1a; raid5阵列中有一块硬盘出现故障掉线&#xff0c;热备盘自动上线同步数据&#xff0c;数据同步还没有完…

macbook电脑如何清理键盘防止误触

M1芯片的MacBook电脑关机后按任意键开机&#xff0c;是苹果的功能设计。这样设计的目的是为了方便用户&#xff0c;让用户在想要使用电脑时能快速开机。但是清理电脑键盘的时候却成为了一种苦恼 以下是一些清理 MacBook 键盘防止误触的方法&#xff1a; 使用工具锁定键盘 Cle…

Oracle补丁自动化安装步骤

1.3.2 补丁安装说明 1. 回滚冲突补丁&#xff1a; 在应用补丁之前&#xff0c;你必须回滚任何在冲突检测中发现的冲突补丁。否则&#xff0c;执行 opatch apply 命令时&#xff0c;补丁安装可能会再次报告冲突。 2. 安装补丁的环境要求&#xff1a; Data Guard 物理备用数据…

【js逆向入门】图灵爬虫练习平台 第九题

地址&#xff1a;aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvOS8 f12进入了debugger&#xff0c;右击选择一律不在此处暂停&#xff0c; 点击继续执行 查看请求信息 查看载荷&#xff0c;2个加密参数&#xff0c;m和tt 查看启动器&#xff0c;打上断点 进来 往…

MySQL原理:逻辑架构

目的&#xff1a;了解 SQL执行流程 以及 MySQL 内部架构&#xff0c;每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层&#xff1a;连接层 3.1 数据库连接池(Conn…

python之网络编程

网络编程 互联网时代&#xff0c;现在基本上所有的程序都是网络程序&#xff0c;很少有单机版 的程序了。 网络编程就是如何在程序中实现两台计算机的通信。 Python语言中&#xff0c;提供了大量的内置模块和第三方模块用于支持各种 网络访问&#xff0c;而且Python语言在网络…

自由学习记录(46)

CG语法的数据类型 // uint : 无符号整数&#xff08;32位&#xff09; // int : 有符号整数&#xff08;32位&#xff09; // float : 单精度浮点数&#xff08;32位&#xff09;&#xff0c;通常带后缀 f&#xff08;如 1.0f&#xff09; // half : 半精度浮…