簡體   English   中英

ZXING android QR Code模式1和模式2類型

[英]ZXING android QR Code Mode 1 and Mode 2 Type

我創建了一個可以生成和掃描二維碼的android應用程序,問題是當我生成二維碼時,只能使用zxing二維碼掃描儀進行水平讀取,但是當我在Google上找到示例二維碼時,即使在垂直方向上也可以讀取格式

我搜索了一下,發現有兩種基本的二維碼MODE1和MODE2類型,我得出結論:zxing只能生成MODE1

有什么方法可以將zxing更改為MODE2,從而使掃描儀可以水平或垂直讀取QR碼的類型?

謝謝。

這是我用來生成的代碼

MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

            try{
                BitMatrix bitMatrix = multiFormatWriter.encode(text.getText().toString(), BarcodeFormat.QR_CODE,200,200);

                BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
                Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
                image.setImageBitmap(bitmap);

            }catch (WriterException e){
                e.printStackTrace();
            }

嘗試在重載編碼功能的hints參數中將其設置為EncodedHintType QR_Version

public BitMatrix encode(String contents,
                    BarcodeFormat format,
                    int width,
                    int height,
                    Map<EncodeHintType,?> hints)
             throws WriterException

// edit根據您的代碼,它看起來可能像這樣。 但是請注意,我尚未測試代碼。

MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

        try{
            Map<EncodeHintType, Object> hints = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
            hints.put(EncodeHintType.QR_VERSION, 2);
            BitMatrix bitMatrix = multiFormatWriter.encode(text.getText().toString(), BarcodeFormat.QR_CODE,200,200, hints);

            BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
            Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
            image.setImageBitmap(bitmap);

        }catch (WriterException e){
            e.printStackTrace();
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM