20行代碼實(shí)現(xiàn)生成二維碼功能

現(xiàn)在二維碼已經(jīng)成了人們生活中的一部分,各種角落、超市、還是小店門(mén)口,亦或是商品包裝上都少不了它,也可見(jiàn)它帶給人們的便利。好了,廢話(huà)有點(diǎn)多,本文章主要想說(shuō)一下在客戶(hù)端展示二維碼的實(shí)現(xiàn)。

一般就是兩種方法:

  • 服務(wù)端生成二維碼圖片,客戶(hù)端去獲取圖片。
  • 客戶(hù)端自己生成二維碼。

我這里就只講客戶(hù)端自己生成二維碼的步驟:

  1. 導(dǎo)入zxing的核心類(lèi)庫(kù),鏈接地址:http://pan.baidu.com/s/1qYTR0SW
  2. 生成二維碼圖片。

導(dǎo)入zxing的核心類(lèi)庫(kù)

因?yàn)橹皇菍?shí)現(xiàn)生成二維碼的功能,并不需要把整個(gè)zxing的項(xiàng)目去拷貝下來(lái)(如果用到掃描解析二維碼,還需要將官方的項(xiàng)目工程拷貝下來(lái)),只需要將核心類(lèi)庫(kù)的包導(dǎo)入到你的項(xiàng)目中即可。

生成二維碼圖片

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();
        }
    }

二維碼的寬度和高度可以根據(jù)自己的需求自己定義,codeFormat就是你想要存儲(chǔ)在二維碼中的字符串信息(注意二維碼容量是有限制的,里面的信息盡量小一點(diǎn),更有利于解析)。

哈哈是不是很簡(jiǎn)單呢O(∩_∩)O哈哈

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,812評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,083評(píng)論 4 61
  • 其實(shí)真的挺累的,心情也不是很好。 上了一天班,雖然什么都沒(méi)做,但是畢竟熬精力,回了家,沒(méi)有人體諒,還都說(shuō)是我矯形,...
    冰霧凝黎閱讀 193評(píng)論 0 0
  • 題記:沒(méi)有人可以一直原地踏步走,就如同沒(méi)有一個(gè)人能夠永遠(yuǎn)生活在襁褓里一樣。 2004年6月,我告別了自己的校園生活...
    李連十三閱讀 496評(píng)論 2 1
  • 現(xiàn)在正午,外面陽(yáng)光很大很大,不太夸張的說(shuō)武漢的天好像是要回到夏天去了。熱,燥,很煩!我正在上英語(yǔ)大課! 我要說(shuō)我很...
    辛未羊閱讀 809評(píng)論 0 1

友情鏈接更多精彩內(nèi)容