Android利用zx框架实现生成二维码+扫码功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
配置
1,
<代码>实现& # 39;com.journeyapps: zxing-android-embedded: 4.1.0 # 39; 代码>
如果报错在这个文件的Android下加上如下配置,让其支持Java1.8,不然只有1.7,1.6
<代码>(可在& # 39;应用# 39;右键——在打开模块设置- - - - - -在模块看到)代码>
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
2,
& lt; uses-sdk工具:overrideLibrary=癱om.google.zxing.client.android"/比; & lt; uses-permission android: name=癮ndroid.permission.CAMERA"/祝辞
记得点击<代码>同步现在代码>
生成二维码
步骤:
1,自定义一个负责生成二维码的类,方便调用,返回一个位图
要点:利用zx中的<代码> BarcodeEncoder 代码>的<代码> encodeBitmap 代码>方法
公共位图encodeBitmap(字符串内容,BarcodeFormat格式,int宽度,int高度,MapencodeBitmap方法
参数内容内容码的内容格式码的类型(二维码,条形码…)宽度码的宽度高度码的高度提示码的额外参数Map
参数内容EncodeHintType。ERROR_CORRECTION设置容错率L> M> Q> H等级越高扫描时间越长,准确率越高EncodeHintType.CHARACTER_SET设置字符集EncodeHintType。保证金设置边距这里列举了一些常用的
这些都是zx中定义好的QRcode类
包com.example.xianyu; 进口android.graphics.Bitmap; 进口com.google.zxing.BarcodeFormat; 进口com.google.zxing.EncodeHintType; 进口com.google.zxing.WriterException; 进口com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; 进口com.journeyapps.barcodescanner.BarcodeEncoder; 进口java.util.HashMap; 进口java.util.Map; 公开课QRcode { 公共位图qrcode(字符串内容){ int宽度=400; int高度=400;//HashMap设置二维码参数 地图地图=new HashMap ();//设置容错率L> M> Q> H等级越高扫描时间越长,准确率越高 map.put (EncodeHintType。ERROR_CORRECTION ErrorCorrectionLevel.M);//设置字符集 map.put (EncodeHintType.CHARACTER_SET“utf-8");//设置外边距 map.put (EncodeHintType.MARGIN, 1);//利用编码器,生成二维码 BarcodeEncoder BarcodeEncoder=new BarcodeEncoder (); 位图的位图=零; 尝试{ 位图=barcodeEncoder。encodeBitmap(内容,BarcodeFormat。QR_CODE、宽度、高度、地图); }捕捉(WriterException e) { e.printStackTrace (); } 返回位图; } }2,在要生成二维码的活动,调用上述类,输入二维码内容生成二维码,之后显示在ImageView组件上
MainActivity
公共类MainActivity延伸AppCompatActivity { ImageView代码; @Override 保护无效alt=" Android利用zx框架实现生成二维码+扫码功能">
步骤:
1,给点击扫码的组件添加点击监听事件2,在监听事件中,利用<代码>意图代码>和<代码> startActivityForResult> 代码跳到zx定义好的默认的扫码界面<代码> CaptureActivity> 代码中(也可以自定义扫码界面)
3,重写onActivityResult方法处理二维码返回的内容
要点:
其中的<代码> REQUEST_CODE 代码> zx是定义好的,一定要使用这个代码
不然在onActivityResult方法中解析二维码将会不起作用IntentIntegrator。parseActivityResult (requestCode、resultCode、数据);这段源码可知<代码> REQUEST_CODE> 代码要相等才会进行二维码解析,否则将会返回零
公共静态IntentResult parseActivityResult (int, int requestCode resultCode,意图意图){ 如果(requestCode==REQUEST_CODE) { 返回parseActivityResult (resultCode,意图); } 返回null; }设置监听:
代码。setOnClickListener(新View.OnClickListener () { @Override 公共空间> @Override 保护空白>关于Android利用zx框架实现生成二维码+扫码功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。Android利用zx框架实现生成二维码+扫码功能