Created
September 25, 2013 05:09
-
-
Save yaoxinghuo/6695379 to your computer and use it in GitHub Desktop.
Android 生成二维码
需要zxing-core.jar
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 用字符串生成二维码 | |
* @param str | |
* @author zhouzhe@lenovo-cw.com | |
* @return | |
* @throws WriterException | |
*/ | |
public static Bitmap create2DCode(String str) throws WriterException { | |
//生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败 | |
BitMatrix matrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, 300, 300); | |
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,具体参考api | |
bitmap.setPixels(pixels, 0, width, 0, 0, width, height); | |
return bitmap; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment