我目前正在Android项目中使用大量QR码,zxing是我首选的库。
要实际显示生成的QR码,将使用编码信息创建位图。
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = writer.encode(message, BarcodeFormat.QR_CODE, px, px);
Bitmap bitmap = Bitmap.createBitmap(px, px, Bitmap.Config.RGB_565);
for (int x = 0; x < px; x++) {
for (int y = 0; y < px; y++) {
bitmap.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);
}
}
这很好用,但速度非常慢。即使对于相当小的位图,整个过程也需要几秒钟。
有没有办法智能地加快这个程序(例如并行化)甚至更好的库?
提前致谢。
答案 0 :(得分:5)
在这个意义上我遇到了同样的问题,我设法通过跟踪这个人来加速我的qr代码加载:
https://www.youtube.com/watch?v=-vWHbCr_OWM
希望这会帮助任何与此斗争的人并遇到这个问题。
其实也许我可以省去你的麻烦:
in gradle:
compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
compile 'com.google.zxing:core:3.2.1'
在代码中:
String myStringToEncode = "Something";
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
BitMatrix bitMatrix = multiFormatWriter.encode(myStringToEncode, BarcodeFormat.QR_CODE,200,200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmpap = barcodeEncoder.createBitmap(bitMatrix);
最后我通过变量
调用我的ImageView控件 imgQR.setImageBitmap(bitmpap);