二维码外面套一个黄色圆圈 之间间隙太大
黄色边框与二维码之间的空隙过大,调整 android:padding="3dp" 无效,且直接调整 band_qrcode 的宽高会导致 band_notice 被挤出。
原因是因为:
二维码图片的透明边距:
- bandqrcode 图片本身可能包含透明边距,导致即使布局贴合,视觉上仍有空隙。
private Bitmap generateQRCode(String content, int width, int height) {try {QRCodeWriter writer = new QRCodeWriter();BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height);// 去掉白边:找实际内容边界int[] enclosingRectangle = bitMatrix.getEnclosingRectangle();int startX = enclosingRectangle[0];int startY = enclosingRectangle[1];int qrWidth = enclosingRectangle[2];int qrHeight = enclosingRectangle[3];// 创建无白边的新 BitmapBitmap bitmap = Bitmap.createBitmap(qrWidth, qrHeight, Bitmap.Config.RGB_565);for (int x = 0; x < qrWidth; x++) {for (int y = 0; y < qrHeight; y++) {bitmap.setPixel(x, y, bitMatrix.get(x + startX, y + startY) ? 0xFF000000 : 0xFFFFFFFF);}}return bitmap;} catch (WriterException e) {Log.e(TAG, "Error generating QR code", e);return null;}}