二维码透明背景改为白色背景

来源:互联网 发布:淘宝海外购流程 编辑:程序博客网 时间:2024/04/28 13:16

本文来自http://blog.csdn.net/u012972188 ,引用必须注明出处!

二维码透明背景改为白色背景

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客


/**     * 生成二维码图片方法     * */    public Bitmap Create2DCode(String str) throws WriterException {         BitMatrix matrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, 320,320);        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] = 0xff000000;                 }             }         }         Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);         bitmap.setPixels(pixels, 0, width, 0, 0, width, height);         return bitmap;     } 

使用上面的方法生成的二维码图片没有白色背景,所以我保存完图片文件后,在预览时由于手机的背景是黑色的,就看不见二维码了,那么如何在生成二维码PNG图片时就加上一个白色背景

这里提供了两种解决方案:

1.第一种解决方案治标不治本,不建议使用。通常我们是使用 imageView 来显示图片的,这是你可以imageView中添加个背景色就可以解决问题了,具体代码如下:

myImageView.setBackgroundColor(new Color().WHITE);
2.第二种解决方案,可以从本质解决这个问题:之所以预览时背景为黑色。是因为生成二维码时,我们只使用一种颜色,那就是黑色(0xff000000)。当有数据时,我们绘制了一个个小黑点,没有数据时,我们是我们什么也没有做!而预览时默认背景使用的也是黑色,就因为这样我们保存的图片在预览时就只能看到一团黑了!接下来就直接上代码了.

其实代码很简单只需在没有数据是,绘制白色即可找到下面代码:

if(matrix.get(x, y)){     pixels[y * width + x] = 0xff000000;     } 
把其替换为下面代码就可以了,是不是很简单呢?

 if(matrix.get(x, y)){     pixels[y * width + x] = 0xff000000;     }else{pixels[y * width + x] = 0xFFFFFFFF;  } 




原创粉丝点击