[英]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.