电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:11日期: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、自定義一個負(fù)責(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)文章:
主站蜘蛛池模板: lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 广东教师资格网-广东教师资格证考试网| 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 雪花制冰机(实验室雪花制冰机)百科| 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 真空上料机(一种真空输送机)-百科 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 暴风影音| 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 杭州|上海贴标机-百科| 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 |