亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Android 超簡易Zxing框架 生成二維碼+掃碼功能

瀏覽:5日期:2022-09-22 15:47:19

zxing是一個二維碼的框架。

配置

1、

Android 超簡易Zxing框架 生成二維碼+掃碼功能

implementation ’com.journeyapps:zxing-android-embedded:4.1.0’如果報錯在這個文件的android下加上如下配置,讓其支持Java1.8,不然只有1.7、1.6(可在’app’右鍵---->open module settings------>Module看到)

compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }

2、

Android 超簡易Zxing框架 生成二維碼+掃碼功能

<uses-sdk tools:overrideLibrary='com.google.zxing.client.android' /> <uses-permission android:name='android.permission.CAMERA'/>

記得點擊Sync Now

生成二維碼

步驟:1、自定義一個負責(zé)生成二維碼的類,方便調(diào)用,返回一個Bitmap

要點:利用Zxing中的 BarcodeEncoder 的 encodeBitmap方法

public Bitmap encodeBitmap(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) throws WriterException

encodeBitmap方法

參數(shù) 內(nèi)容 contents 碼的內(nèi)容 format 碼的類型(二維碼、條形碼…) width 碼的寬度 height 碼的高度 hints 碼的額外參數(shù)

Map<EncodeHintType, ?> hints碼的額外參數(shù)這里列舉了一些常用的這些都是Zxing中定義好的

參數(shù) 內(nèi)容 EncodeHintType.ERROR_CORRECTION 設(shè)置容錯率 L>M>Q>H 等級越高掃描時間越長,準(zhǔn)確率越高 EncodeHintType.CHARACTER_SET 設(shè)置字符集 EncodeHintType.MARGIN 設(shè)置邊距

QRcode類

package com.example.xianyu;import android.graphics.Bitmap;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.WriterException;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;import com.journeyapps.barcodescanner.BarcodeEncoder;import java.util.HashMap;import java.util.Map;public class QRcode{ public Bitmap qrcode(String content){ int width = 400; int height = 400; //HashMap設(shè)置二維碼參數(shù) Map map = new HashMap(); // 設(shè)置容錯率 L>M>Q>H 等級越高掃描時間越長,準(zhǔn)確率越高 map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); //設(shè)置字符集 map.put(EncodeHintType.CHARACTER_SET,'utf-8'); //設(shè)置外邊距 map.put(EncodeHintType.MARGIN,1); //利用編碼器,生成二維碼 BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); Bitmap bitmap = null; try { bitmap = barcodeEncoder.encodeBitmap(content, BarcodeFormat.QR_CODE, width, height,map); } catch (WriterException e) { e.printStackTrace(); } return bitmap; }}

2、在要生成二維碼的Activity,調(diào)用上述類,輸入二維碼內(nèi)容生成二維碼,之后顯示在ImageView組件上

MainActivity

public class MainActivity extends AppCompatActivity { ImageView Code; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Code = findViewById(R.id.iv_code); QRcode qrcode = new QRcode(); Bitmap bitmap= qrcode.qrcode('CSDN'); Code.setImageBitmap(bitmap); }

成功獲得二維碼內(nèi)容

Android 超簡易Zxing框架 生成二維碼+掃碼功能

掃碼

步驟:1、給點擊掃碼的組件添加點擊監(jiān)聽事件

2、在監(jiān)聽事件中,利用Intent和startActivityForResult跳到Zxing定義好的默認(rèn)的掃碼界面CaptureActivity中(也可以自定義掃碼界面)

3、重寫onActivityResult方法處理二維碼返回的內(nèi)容

要點:其中的REQUEST_CODEZxing是定義好的,一定要使用這個CODE不然在onActivityResult方法中解析二維碼將會不起作用

IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

這段源碼可知REQUEST_CODE要相等才會進行二維碼解析,否則將會返回 null

public static IntentResult parseActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == REQUEST_CODE) { return parseActivityResult(resultCode, intent); } return null; }

設(shè)置監(jiān)聽:

Code.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent,REQUEST_CODE); } });

重寫Activity中的onActivityResult得到二維碼內(nèi)容,我這里只是將獲得的內(nèi)容進行簡單的輸出

@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if(result != null) { if(result.getContents() == null) {Toast.makeText(this, 'Cancelled', Toast.LENGTH_LONG).show(); } else {Toast.makeText(this, 'Scanned: ' + result.getContents(), Toast.LENGTH_LONG).show(); } } else { super.onActivityResult(requestCode, resultCode, data); } }

總結(jié)

更多內(nèi)容請到github查看:https://github.com/zxing/zxing

到此這篇關(guān)于Android 超簡易Zxing框架 生成二維碼+掃碼功能的文章就介紹到這了,更多相關(guān)Android Zxing框架生成二維碼+掃碼內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 欧美综合图片一区二区三区 | 美女xx网站 | 欧美成人福利视频 | 亚洲激情成人 | 国产 麻豆 欧美亚洲综合久久 | 亚洲精品福利 | 91在线精品免费观看 | 日韩在线操 | 在线视频欧美日韩 | 日韩精品免费一区二区三区 | 欧美特级大片 | 一级做a爰片欧美一区 | 婷婷综合久久狠狠色99h | 一本大道一卡2卡三卡4卡麻豆 | 久久久久久免费精品视频 | 亚洲人成高清毛片 | 9久热这里只有精品视频在线观看 | 成人a毛片免费视频观看 | 香蕉亚洲精品一区二区 | 最新亚洲精品国自产在线 | 国产福利视频一区二区 | 亚洲在线高清 | 视频成人永久免费视频 | 1024手机最新手机在线 | 国产一区二区精品久久 | 丁香啪啪天堂激情婷婷 | 国产在线视频一区二区三区 | 天天看天天摸色天天综合网 | 最近最新中文字幕在线第一页 | 国产在线欧美日韩精品一区二区 | 91短视频黄色 | 黄性色| 亚洲成年人影院 | 国产高清视频免费最新在线 | 国产精品偷拍 | 亚洲 欧美 日韩在线 | 三级大黄 | 高清视频一区 | 亚洲国产成人va在线观看网址 | 欧美人与动物xx | 免费一级黄色毛片 |