Android二维码生成_QRCodeWriter二维码识别与解析开发
2015-08-02 10:15:12  By: dwtedx

本Demo是一个利用QRCodeWriter编写的二维码的生成和解析的小例子、并将图片保存到本地、代码也很简单、都是封装的方法、很好理解、基本上下载源代码就可以很清楚的理解代码、并且能快速的集成到自己的项目中、下载看一下Demo例子

android二维码生成


生成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.createBitmap(QR_WIDTH, QR_HEIGHT,
                Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
        System.out.println(Environment.getExternalStorageDirectory());

        qr_image.setImageBitmap(bitmap);
        try {
            saveMyBitmap(bitmap, "code");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (WriterException e) {
        e.printStackTrace();
    }
}


解析QR图片代码

private void scanningImage() {
    Hashtable<DecodeHintType, String> hints = new 
        Hashtable<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);
        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();
    }
}


到此为止、以前就是生成二维码和解析二维码的代码了、详细的代码大家可以下载源代码研究

另外以前也分享过一个通过联图生成二维码的例子:http://dwtedx.com/itshare_261.html


若资源对你有帮助、扫描下方的二维码、关注DD博客微信公众号(ddblogs)吧

最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看

源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1gd2I3RH 密码: c932

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+