我已经创建了一个可以生成和扫描二维码的android应用程序,问题是当我生成二维码时,它只能使用zxing二维码扫描器水平读取,但当我在google上找到一个样本二维码时,它甚至可以垂直格式读取
我搜索了一下,发现有两种基本的二维码: MODE1和MODE2。我得出结论,zxing只能生成MODE1
有没有办法将生成的二维码类型使用zxing更改为MODE2,以便扫描仪可以水平或垂直读取?
谢谢。
下面是我用来生成
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();
}发布于 2016-11-17 15:41:34
尝试在overloaded encoding function的EncodedHintType QR_Version参数中将其设置为提示
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints)
throws WriterException//根据您的代码进行编辑,它可能如下所示。但请注意,我还没有测试代码。
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();
}https://stackoverflow.com/questions/40649034
复制相似问题