Android利用zx框架实现生成二维码+扫码功能

  

Android利用zx框架实现生成二维码+扫码功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

配置

1,

 Android利用zx框架实现生成二维码+扫码功能

<代码>实现& # 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,

 Android利用zx框架实现生成二维码+扫码功能

& 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高度,Map 

encodeBitmap方法

参数内容内容码的内容格式码的类型(二维码,条形码…)宽度码的宽度高度码的高度提示码的额外参数

Map这里列举了一些常用的
这些都是zx中定义好的

参数内容EncodeHintType。ERROR_CORRECTION设置容错率L> M> Q> H等级越高扫描时间越长,准确率越高EncodeHintType.CHARACTER_SET设置字符集EncodeHintType。保证金设置边距

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> 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框架实现生成二维码+扫码功能