本文实例讲述了Android编程实现二维码的生成与解析。分享给大家供大家参考,具体如下:
直接上代码,代码上面有具体的解析,并且提供jar供下载:二维码Jar包.rar 。
根据文本生成对应的二维码:
// 生成QR图
private void createImage() {
try {
// 需要引入core包
QRCodeWriter writer = new QRCodeWriter();
String text = qr_text.getText().toString();
Log.i(TAG, "生成的文本:" + text);
if (text == null || "".equals(text) || text.length() < 1) {
return;
}
// 把输入的文本转为二维码
BitMatrix martix = writer.encode(text, BarcodeFormat.QR_CODE,
QR_WIDTH, QR_HEIGHT);
System.out.println("w:" + martix.getWidth() + "h:"
+ martix.getHeight());
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = new QRCodeWriter().encode(text,
BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints);
int[] pixels = new int[QR_WIDTH * QR_HEIGHT];
for (int y = 0; y < QR_HEIGHT; y++) {
for (int x = 0; x < QR_WIDTH; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * QR_WIDTH + x] = 0xff000000;
} else {
pixels[y * QR_WIDTH + x] = 0xffffffff;
}
}
}
Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
qr_image.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
根据二维码图片读取内容:
// 解析QR图片
private void scanningImage() {
Map<DecodeHintType, String> hints = new HashMap<DecodeHintType, String>();
hints.put(DecodeHintType.CHARACTER_SET, "utf-8");
// 获得待解析的图片
Bitmap bitmap = ((BitmapDrawable) qr_image.getDrawable()).getBitmap();
RGBLuminanceSource source = new RGBLuminanceSource(bitmap);
BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source));
QRCodeReader reader = new QRCodeReader();
Result result;
try {
result = reader.decode(bitmap1, hints);
// 得到解析后的文字
qr_result.setText(result.getText());
} catch (NotFoundException e) {
e.printStackTrace();
} catch (ChecksumException e) {
e.printStackTrace();
} catch (FormatException e) {
e.printStackTrace();
}
}
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:Android实现二维码扫描和生成的简单方法Android上使用ZXing识别条形码与二维码的方法iOS和Android用同一个二维码实现跳转下载链接的方法Android开发框架之自定义ZXing二维码扫描界面并解决取景框拉伸问题Android项目实战(二十八):使用Zxing实现二维码及优化实例基于Android实现个性彩色好看的二维码Android基于google Zxing实现各类二维码扫描效果Android 二维码 生成和识别二维码 附源码下载Android平台生成二维码并实现扫描 & 识别功能Android扫描和生成二维码