如何在QR码中心添加图像

时间:2019-03-26 11:19:00

标签: java android qr-code

我正在尝试生成与WhatsAppWeb中使用的QR码类似的QR码,其中心带有徽标

我正在使用 'androidmads.library.qrgenearator:QRGenearator:1.0.3' 库,并且正在使用以下代码生成QR码。

number_of_enrollments

如何将图像添加到QR码?

1 个答案:

答案 0 :(得分:0)

您尝试过使用ZXing,它是一个非常酷的QR代码库,类似的东西,这是我前一段时间做的方法:

//generate and set QR code
    ImageView imgQRCode = (ImageView) findViewById(R.id.imgQRCode);
    try {
        Bitmap qr = encodeAsBitmap("Any String HERE");

        if(qr != null)
            imgQRCode.setImageBitmap(qr);
        else {
            //Do whatever based on your logic
            //Toast.makeText(Prompt_ViewQRActivity.this, "Error message", Toast.LENGTH_LONG).show();
            //finish();
        }
    } catch (Exception e) {

    }

然后是“ encodeAsBitmap”方法

Bitmap encodeAsBitmap(String str) throws WriterException {
    BitMatrix result;

    try {
        result = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, 300, 300, null);
    } catch (IllegalArgumentException iae) {
        // Unsupported format
        return null;
    }

    int w = result.getWidth();
    int h = result.getHeight();

    int[] pixels = new int[w * h];

    for (int y = 0; y < h; y++) {
        int offset = y * w;

        for (int x = 0; x < w; x++) {
            pixels[offset + x] = result.get(x, y) ? Color.BLACK : Color.WHITE;
        }
    }

    Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    bitmap.setPixels(pixels, 0, 300, 0, 0, w, h);

    return bitmap;
}