1.简介
这是一篇安卓生成二维码的文章,文章中不涉及太多原理方面的问题,只是单纯的让读者知道如何生成二维码。
2.准备工作
将上面下载的jar包放入如图所示位置,我们就完成了准备工作。
3.生成二维码
布局代码如下:
Java代码如下:
public Bitmap generateBitmap(String content,int width,int height){ QRCodeWriter writer = new QRCodeWriter(); Map<EncodeHintType,String> hint =new HashMap<>(); hint.put(EncodeHintType.CHARACTER_SET,"utf-8"); try { BitMatrix encode = writer.encode(content, BarcodeFormat.QR_CODE,width,height,hint); int []pixels = new int[width*height]; for(int i=0;i<height;i++){ for(int j=0;j<width;j++){ if(encode.get(j,i)){ pixels[i*width+j]=0x00000000; }else { pixels[i*width+j]=0xffffffff; } } } return Bitmap.createBitmap(pixels,0,width,width,height, Bitmap.Config.RGB_565); } catch (Exception e){ e.printStackTrace(); } return null; }
代码中要点解释
content:要转化为二维码的内容
wide:要生成的二维码的宽
height:要生成的二维码的高
QRCodeWriter:对文本进行编码(利用它的方法encode)的工具类,encode方法接收5个参数,第一个参数为文本内容,第二个参数为编码格式,第三、四个参数为宽与高,第五个为设置文本的编码。
那么我们的二维码是如何生成的呢?我们把一张二维码图片可以看做是由I行j列组成的。当某一个位置有数据时就为黑色,没有数据的时候就为白色。那么就需要遍历整个数组。最后再调用Bitmap的createBitmap方法返回一个Bitmap对象就完成了本次二维码生成的核心代码。createBitmap方法接收六个参数,第一个代表像素点的颜色,第二个为像素点的偏移量,第三个为Bitmap每一行有多少个像素点,第四个为生成bitmap的宽度,第五个为bitmap的高度,第六个为色彩模式。
调用该方法得到二维码
4.结语
二维码的生成就到此结束啦,后续还会更新二维码的扫描等。