本篇博客主要记录一下Android生成及解析二维码的基本方法,
同时记录一下遇到的NotFoundException及对应解决方法。
如今很多APK都集成了二维码,其本质不过是将信息按照0、1的方式写入到图片中,
0、1分别对应了不同的颜色。
从APK调用api的角度来看,生成和解析二维码是非常容易的,
真正的难度其实还是在信息的编码及图像的识别上,而这就比较依赖于专业知识了。
对于普通开发者而言,在项目中引用google的支持库后,就能够开发基本的功能了。
我自己写demo时,在Android Studio中引用的支持库为com.google.zxing:core:3.3.0。
整个demo的界面非常简单,如下图所示:
基本功能就是点击GENERATE按键后,在界面下方生成二维码;
点击SCAN按键后,从二维码图片中得到对应的信息。
其中,生成二维码的核心代码如下:
private void generateQRCode() {
//得到信息对应的像素数组
int[] pixels = generatePixels();
if (pixels != null) {
Bitmap bitmap = Bitmap.createBitmap(
QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888);
//根据像素数组生成bitmap
//这部分参数含义查看一下API描述,比较容易弄懂
bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
//将bitmap显示到界面上
mImageView.setImageBitmap(bitmap);
mScanButton.setEnabled(true);
}
}
容易看出,上面代码的重点部分在于生成像素数组。
这部分内容如下所示:
private int[] generatePixels() {
//得到需要写入的信息
String data = createData();
int[] pixels = null;