欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android二维码的生成与扫码-zxing示例代码

程序员文章站 2023-11-29 13:19:10
由于github上面的zxing功能太多,有的用不到,我就抽取了重要的出来使用,这个可以生成二维码,扫描二维码和相册中的二维码 demo效果: 1.在project...

由于github上面的zxing功能太多,有的用不到,我就抽取了重要的出来使用,这个可以生成二维码,扫描二维码和相册中的二维码

demo效果:

Android二维码的生成与扫码-zxing示例代码

1.在project的build.gradle添加如下代码:

allprojects {
  repositories {
    maven { 
      url 'https://jitpack.io'
     }
  }
}

2.在build.gradle添加依赖:

dependencies {
  compile 'com.github.goodboy321:scan-zxing:1.0'
}

布局:

<edittext
  android:id="@+id/et"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:hint="输入内容,生成二维码"
  android:text="http://www.baidu.com" />

<button
  android:background="@color/coloraccent"
  android:id="@+id/btn2"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="生成二维码" />

<button
  android:layout_margintop="10dp"
  android:background="@color/colorprimarydark"
  android:id="@+id/btn1"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="扫码(识别相册中二维码)" />

<imageview
  android:id="@+id/image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal" />

<imageview
  android:id="@+id/image_callback"
  android:layout_margintop="10dp"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_gravity="center_horizontal" />

主方法:

public void onclick(view view) {
  switch (view.getid()) {
    case r.id.btn1:
      intent intent = new intent(mcontext, captureactivity.class);
      startactivityforresult(intent, request);
      break;
    case r.id.btn2:
      image.setvisibility(view.visible);
      //隐藏扫码结果view
      imagecallback.setvisibility(view.gone);

      string content = et.gettext().tostring().trim();
      bitmap bitmap = null;
      try {
        bitmap = bitmaputils.create2dcode(content);//根据内容生成二维码
        tvresult.setvisibility(view.gone);
        image.setimagebitmap(bitmap);
      } catch (exception e) {
        e.printstacktrace();
      }
      break;
   }
}

@override
protected void onactivityresult(int requestcode, int resultcode, intent data) {
  super.onactivityresult(requestcode, resultcode, data);
  if (requestcode == request) {
    image.setvisibility(view.gone);
    imagecallback.setvisibility(view.visible);

    string result = data.getstringextra(captureactivity.scan_qrcode_result);
    bitmap bitmap = data.getparcelableextra(captureactivity.scan_qrcode_bitmap);

    if(bitmap != null){
      imagecallback.setimagebitmap(bitmap);//现实扫码图片
    }
  }

具体需求可修改源码

demo源码下载:zxing_jb51.net.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。