如何使用Java在Android中绘制带有圆角矩形的QR代码?

问题描述 投票:1回答:1

我一直在生成QR码并将其显示在屏幕上。现在,我可以使用Zxing库生成它,该库为我提供了一个BitMatrix,该矩阵返回有关x和y值的布尔值,如果该坐标需要为黑色或白色,则为布尔值。现在,我可以使用以下代码成功生成并显示QR代码:

String charset = "UTF-8";
Map<EncodeHintType, ErrorCorrectionLevel> hintMap = new HashMap<>();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);

BitMatrix matrix = new QRCodeWriter().encode(new String(url.getBytes(charset), charset), BarcodeFormat.QR_CODE, (int) context.getResources().getDimension(R.dimen.qr_square), (int) context.getResources().getDimension(R.dimen.qr_square), hintMap);


 Bitmap bitmap = Bitmap.createBitmap(matrix.getWidth(), matrix.getHeight(), Config.ARGB_8888);

 Canvas canvas = new Canvas(bitmap);
 Paint paint = new Paint();
 paint.setColor(Color.BLACK);
 for (int y = 0; y < matrix.getHeight(); y++) {
    for (int x = 0; x < matrix.getWidth(); x++) {
        if (!overlayRect.contains(x, y))
            canvas.drawPoint(x, y, paint);
    }
 }
 qrImageView.setImageBitmap(bitmap);

但是现在,设计师希望整个QR码都具有圆角。我尝试了几件事,但未能成功生成圆角QR码。任何帮助将不胜感激。 TIA

java android canvas qr-code rounded-corners
1个回答
-1
投票

两件事的结合:

© www.soinside.com 2019 - 2024. All rights reserved.