现在开发中,经常会用到二维码技术,Zxing是一个开源的,在Android中广泛应用的二维码技术,首先我们使用Zxing完成二维码的生成工作,首先将zxingcore.jar包放到我们的工程当中去:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
Bitmap bitmap = Create2DCode(strUrl);
iv.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
public 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;
} <img src="https://img-blog.csdn.net/20151208110722282?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<a target=_blank href="http://download.csdn.net/detail/itydxtocattle/9336039">zxingcore.jar下载</a>
Demo下载