Android中URL轉(zhuǎn)換成二維碼的實現(xiàn)方法-創(chuàng)新互聯(lián)

這篇文章主要講解了Android中URL轉(zhuǎn)換成二維碼的實現(xiàn)方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、H5建站、網(wǎng)站制作、品牌網(wǎng)站建設(shè)成都小程序開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

二維碼已經(jīng)成為我們?nèi)粘I钪械囊粋€不可獲取的產(chǎn)物,火車票上,景區(qū)門票,超市付款等等都會有二維碼的身影。

本文將實現(xiàn)由URL轉(zhuǎn)換成二維碼的過程。

先看一下示例圖

Android中URL轉(zhuǎn)換成二維碼的實現(xiàn)方法

從示例圖中我們可以清晰地看到,URL被轉(zhuǎn)換成了二維碼。

下面跟隨我來一起實現(xiàn)這個功能。

導(dǎo)入Google提供的開源庫

compile 'com.google.zxing:core:3.3.0'

來講解一下核心的部分:二維碼轉(zhuǎn)換

①生成二維碼Bitmap

public static boolean createQRImage(String content, int widthPix, int heightPix, Bitmap logoBm, String filePath) {
  try {
   if (content == null || "".equals(content)) {
    return false;
   }

   //配置參數(shù)
   Map<EncodeHintType, Object> hints = new HashMap<>();
   hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
   //容錯級別
   hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
   //設(shè)置空白邊距的寬度
   hints.put(EncodeHintType.MARGIN, 2); //default is 4

   // 圖像數(shù)據(jù)轉(zhuǎn)換,使用了矩陣轉(zhuǎn)換
   BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, widthPix, heightPix, hints);
   int[] pixels = new int[widthPix * heightPix];
   // 下面這里按照二維碼的算法,逐個生成二維碼的圖片,
   // 兩個for循環(huán)是圖片橫列掃描的結(jié)果
   for (int y = 0; y < heightPix; y++) {
    for (int x = 0; x < widthPix; x++) {
     if (bitMatrix.get(x, y)) {
      pixels[y * widthPix + x] = 0xff000000;
     } else {
      pixels[y * widthPix + x] = 0xffffffff;
     }
    }
   }

   // 生成二維碼圖片的格式,使用ARGB_8888
   Bitmap bitmap = Bitmap.createBitmap(widthPix, heightPix, Bitmap.Config.ARGB_8888);
   bitmap.setPixels(pixels, 0, widthPix, 0, 0, widthPix, heightPix);

   if (logoBm != null) {
    bitmap = addLogo(bitmap, logoBm);
   }

   //必須使用compress方法將bitmap保存到文件中再進(jìn)行讀取。直接返回的bitmap是沒有任何壓縮的,內(nèi)存消耗巨大!
   return bitmap != null && bitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(filePath));
  } catch (WriterException | IOException e) {
   e.printStackTrace();
  }

  return false;
 }

網(wǎng)頁題目:Android中URL轉(zhuǎn)換成二維碼的實現(xiàn)方法-創(chuàng)新互聯(lián)
當(dāng)前URL:http://bm7419.com/article6/igiig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、微信小程序、網(wǎng)站維護(hù)、軟件開發(fā)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作