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;}}}