20行代码实现生成二维码功能

现在二维码已经成了人们生活中的一部分,各种角落、超市、还是小店门口,亦或是商品包装上都少不了它,也可见它带给人们的便利。好了,废话有点多,本文章主要想说一下在客户端展示二维码的实现。

一般就是两种方法:

  • 服务端生成二维码图片,客户端去获取图片。
  • 客户端自己生成二维码。

我这里就只讲客户端自己生成二维码的步骤:

  1. 导入zxing的核心类库,链接地址:http://pan.baidu.com/s/1qYTR0SW
  2. 生成二维码图片。

导入zxing的核心类库

因为只是实现生成二维码的功能,并不需要把整个zxing的项目去拷贝下来(如果用到扫描解析二维码,还需要将官方的项目工程拷贝下来),只需要将核心类库的包导入到你的项目中即可。

生成二维码图片

public void createImage(String codeFormat, ImageView codeImg) {
        try {
            if (codeFormat == null || "".equals(codeFormat) || codeFormat.length() < 1) {
                return;
            }
            Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            BitMatrix bitMatrix = new QRCodeWriter().encode(codeFormat, 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;
                    }
                }
            }
            Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888);
            bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
            codeImg.setImageBitmap(bitmap);
        } catch (WriterException e) {
            e.printStackTrace();
        }
    }

二维码的宽度和高度可以根据自己的需求自己定义,codeFormat就是你想要存储在二维码中的字符串信息(注意二维码容量是有限制的,里面的信息尽量小一点,更有利于解析)。

哈哈是不是很简单呢O(∩_∩)O哈哈

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,490评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,735评论 4 61
  • 其实真的挺累的,心情也不是很好。 上了一天班,虽然什么都没做,但是毕竟熬精力,回了家,没有人体谅,还都说是我矫形,...
    冰雾凝黎阅读 1,405评论 0 0
  • 题记:没有人可以一直原地踏步走,就如同没有一个人能够永远生活在襁褓里一样。 2004年6月,我告别了自己的校园生活...
    李连十三阅读 3,214评论 2 1
  • 现在正午,外面阳光很大很大,不太夸张的说武汉的天好像是要回到夏天去了。热,燥,很烦!我正在上英语大课! 我要说我很...
    辛未羊阅读 4,055评论 0 1

友情链接更多精彩内容