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