我正在尝试在Android上使用Zxing生成QR码。由于Android中不包括java.awt.image.BufferedImage,因此我不确定如何在Android上创建QR码图像。
编辑: 我不希望我的应用程序需要互联网访问。
编辑: 我不希望我的应用程序需要互联网访问。
我发现这篇文章对于使用ZXing生成二维码非常有帮助: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;
}
android/
下的zxing源代码。在.encode
包中,您将看到一个关于如何在Android中编码QR码的示例。是的,您不能使用BufferedImage
,也不需要使用它。.qrcode
包的Detector
和Decoder
。但如果你只是为了将信息编码并发送到另一个活动中进行解码,为什么不直接发送原始数据呢? - Sean Owen最简单的方法是使用Google Charts API。它是一个简单的REST API,可以为您提供PNG文件。如果您不希望您的应用程序需要互联网,那么您需要更多的工作,但这是可以完成的。com.google.zxing.qrcode.encoder是将为您生成QR的类。我从未确切地弄清楚如何使用它们,但我认为它会返回表示QR的矩阵,您需要找出如何将其绘制到画布或其他东西上。