Android-Zxing实现二维码的扫描与生成

yizhihongxing

下面是关于“Android-Zxing实现二维码的扫描与生成”的完整攻略:

1. 引入第三方库

在项目的build.gradle文件中,加入zxing-android-embedded库:

dependencies {
    implementation 'com.journeyapps:zxing-android-embedded:3.5.0'
}

2. 实现二维码扫描

开始扫描

  1. 添加CameraPermissionHandlerDecodeCallback
private static final int CAMERA_REQUEST_CODE = 123;
private CameraPermissionHandler permissionHandler;
private DecodeCallback decodeCallback;
  1. 使用CameraPermissionHandler请求相机权限:
permissionHandler = new CameraPermissionHandler(this);
permissionHandler.requestPermission(CAMERA_REQUEST_CODE);
  1. 在Activity的onActivityResult()方法中处理权限请求结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if (requestCode == CAMERA_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            startScan();
        } else {
            Toast.makeText(this, "没有相机权限,无法进行扫描", Toast.LENGTH_SHORT).show();
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}
  1. 实现startScan()方法:
private void startScan() {
    IntentIntegrator integrator = new IntentIntegrator(this);
    integrator.setCaptureActivity(ScanActivity.class);
    integrator.setOrientationLocked(false);
    integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
    integrator.setPrompt("请将二维码对准框内");
    integrator.initiateScan();
}
  1. 在Activity中实现onActivityResult()方法来获得扫描结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    if (result != null) {
        String content = result.getContents();
        if (content != null) {
            Toast.makeText(this, "扫描结果:" + content, Toast.LENGTH_SHORT).show();
        }
    }
    super.onActivityResult(requestCode, resultCode, intent);
}

自定义扫描页面

  1. 创建一个ScanActivity继承自CaptureActivity

  2. ScanActivity中,通过设置R.layout.activity_scan来自定义扫描页面UI。

  3. 在扫描完成后,通过Intent将扫描结果传递个上一个Activity。

代码示例详见 Android-Zxing实现二维码扫描

3. 实现二维码生成

生成二维码

  1. 添加BarcodeEncoder库:
dependencies {
    implementation 'com.google.zxing:core:3.3.3'
    implementation 'com.journeyapps:zxing-android-embedded:3.5.0'
}
  1. 创建BarcodeEncoder实例:
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
  1. 通过barcodeEncoder.encodeBitmap()方法生成二维码图片:
Bitmap bitmap = barcodeEncoder.encodeBitmap("Hello World!", BarcodeFormat.QR_CODE, 400, 400);

显示二维码

  1. 在布局文件中添加一个ImageView
<ImageView
    android:id="@+id/qr_code_image_view"
    android:layout_width="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_height="wrap_content" />
  1. 在Activity中找到ImageView
ImageView qrCodeImageView = findViewById(R.id.qr_code_image_view);
  1. 将生成的二维码图片设置给ImageView
qrCodeImageView.setImageBitmap(bitmap);

代码示例详见 Android-Zxing实现二维码生成

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android-Zxing实现二维码的扫描与生成 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • git版本库介绍及本地创建的三种场景方式

    Git是一个流行的版本控制系统,用于跟踪和管理项目代码的修改版本。在本地创建Git版本库的三种场景方式包括:初始化一个空的Git库,复制现有的Git库和克隆远程Git库。 初始化一个空的Git库 如果您想要在本地创建一个全新的Git版本库,请执行以下步骤: 打开“命令行终端”或“Git Bash”(Windows用户需要安装Git Bash); 切换到您要创…

    GitHub 2023年5月16日
    00
  • Linux 和Windows 安装Git 步骤详细介绍

    下面我就为您介绍一下如何在 Linux 和 Windows 系统上安装 Git。 Linux 安装 Git 步骤一:检查是否已安装 Git 在 Linux 系统中,运行以下命令检查是否已经安装 Git: $ git –version 如果 Git 已经安装,会显示 Git 的版本号。如果没有安装,则会提示找不到 git 命令。 步骤二:安装 Git 如果程…

    GitHub 2023年5月16日
    00
  • Linux中Git集中操作命令汇总

    Linux中Git集中操作命令汇总 1. Git简介 Git是一种分布式版本控制系统,常用于代码的版本管理和协同工作。使用Git可以方便地对代码进行版本控制和管理。 2. Git安装 在Linux系统中,Git可以使用包管理器进行安装。以Ubuntu系统为例,可以使用以下命令进行安装: sudo apt-get update sudo apt-get ins…

    GitHub 2023年5月16日
    00
  • 微软Build看点总结 2018开发者大会首日消息

    微软 Build 2018 看点总结 微软 Build 2018 开发者大会于 5 月 7 日在美国西雅图隆重拉开帷幕,这也是微软第 8 届 Build 大会。在本次大会上,微软发布了许多新产品和更新,特别是人工智能(AI)和云计算方面的收获。 看点总结 1. 人工智能 微软在本次大会上宣布将加强对人工智能的支持,推出 AI for Accessibilit…

    GitHub 2023年5月16日
    00
  • Android选择与上传图片之PictureSelector教程

    下面是详细的“Android选择与上传图片之PictureSelector教程”攻略,其中包含两条示例说明。 一、前言 在Android开发中,我们常常需要上传图片并在页面上进行展示或处理。然而,Android系统自带的图片选择器功能有一定的局限性,如只能同时选择一张图片等。因此,我们需要借助第三方库来实现功能的扩展。 PictureSelector是一款常…

    GitHub 2023年5月16日
    00
  • Git 教程之远程仓库详解

    Git 教程之远程仓库详解 Git 是目前最受欢迎的版本控制工具之一,它可以帮助我们管理项目的代码变更历史,支持团队协作开发,而远程仓库则是 Git 的一个非常重要的功能。 远程仓库的作用 远程仓库是指托管在网络服务器上的 Git 仓库。相比本地仓库,远程仓库具有以下特点: 多人协作:多人可以共用同一个远程仓库,方便团队协作开发。 备份和恢复:远程仓库可以充…

    GitHub 2023年5月16日
    00
  • 微信小程序 授权登录详解(附完整源码)

    我来详细讲解一下“微信小程序授权登录详解(附完整源码)”的攻略。 标题一:准备工作 在编写微信小程序授权登录功能之前,需要先了解下几个概念: APPID & APPSECRET:在小程序管理后台配置时生成的小程序对应的appID和appSecret。 wx.login():小程序登录系统的API接口。 wx.getUserInfo():小程序获取用户…

    GitHub 2023年5月16日
    00
  • 利用TensorFlow训练简单的二分类神经网络模型的方法

    利用TensorFlow训练简单的二分类神经网络模型的方法 介绍 TensorFlow是一个开源的机器学习工具,使用它可以快速地构建、训练和测试各种类型的神经网络模型。在本文中,我们将讨论如何使用TensorFlow来训练简单的二分类神经网络模型。 环境 首先,你需要安装TensorFlow。你可以使用pip来安装TensorFlow: pip instal…

    GitHub 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部