我正在尝试使用Android上的Zxing生成QR码。由于Android中不包含java.awt.image.BufferedImage,因此我不确定如何在Android上创建QR码图像。
编辑: 我不希望我的应用程序需要访问Internet。
答案 0 :(得分:8)
我发现这是一个有用的http://codeisland.org/2013/generating-qr-codes-with-zxing/
使用上述资源,我创建了一个实用程序方法如下:
public static Bitmap encodeToQrCode(String text, int width, int height){
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = null;
try {
matrix = writer.encode(text, BarcodeFormat.QR_CODE, 100, 100);
} catch (WriterException ex) {
ex.printStackTrace();
}
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
for (int x = 0; x < width; x++){
for (int y = 0; y < height; y++){
bmp.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);
}
}
return bmp;
}
答案 1 :(得分:4)
请查看android/
下的zxing源代码。在.encode
包中,您将看到一个如何在Android中对QR码进行编码的示例。是的,您无法使用,也不需要使用BufferedImage
。
答案 2 :(得分:0)
最简单的方法是google charts API。这是一个简单的rest API,它将为您提供一个png文件。如果您不希望您的应用程序需要互联网,那么您的工作就会更多,但可以完成。 com.google.zxing.qrcode.encoder是将为您生成QR的类。我从来没有想过如何使用它们,但我认为它返回一个表示QR的矩阵,你必须弄清楚如何将它绘制到画布或其他东西。