android zxing生成二维码是bitmap对象,如果保存bitmap到sdcard查看的时候会发现图片是一片漆黑。
解决方法:
Bitmap qrCodeBitmap = EncodingHandler.createQRCode(contentString, 500);在这句代码中,
ctrl+左键点击createQRCode,查看EncodingHandler中的createQRCode方法的代码实现。
将以下代码:
int width = matrix.getWidth();int height = matrix.getHeight();
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (matrix.get(x, y)) {
pixels[y * width + x] = BLACK;
}
}
}
添加几句,改为:
int width = matrix.getWidth();
int height = matrix.getHeight();
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (matrix.get(x, y)) {
pixels[y * width + x] = BLACK;
}else{
pixels[y * width + x] = WHILTE;//其中WHILTE是我自己定义的一个静态变量,值为0xffffffff(即白色)
//和BLACK(0xff000000黑色)一样。这样就可以使得图片黑白分明了。
}
}
}
修改后,可正常显示zxing保存下来的二维码图片:
所借鉴的原文:http://blog.csdn.net/zjx_android/article/details/17373237