flutter:二维码生成与读取

这篇具有很好参考价值的文章主要介绍了flutter:二维码生成与读取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

这csdn真的是服了,图片里有个二维码就直接变成违规图片了。至于效果的话,自己运行一下看看吧。

生成

flutter中生成二维码可以使用 qr_flutter

官方文档
https://pub-web.flutter-io.cn/packages/qr_flutter

安装

flutter pub add qr_flutter

示例

示例1

QrImageView(
    data: 'https://pub-web.flutter-io.cn/packages/qr_flutter', // 数据
    version: QrVersions.auto, // 版本选择自适应
    size: 200.0, // 大小
  ),

示例2

QrImageView(
           data: 'https://pub-web.flutter-io.cn/packages/qr_flutter', // 数据
           version: QrVersions.auto, // 版本选择自适应
           size: 200.0, // 大小
           embeddedImage: const AssetImage('lib/assets/image/flutter.png'), // 图片
           embeddedImageStyle: const QrEmbeddedImageStyle(  // 设置图像样式
             size: Size(40, 40),
           ),
         ),


官方提供的方式,无法在图片周围生成间隙。但其实我们可以使用堆叠组件来实现。

Stack(
	     children: [
	       QrImageView(
	         data: qrData, // 数据
	         version: QrVersions.auto, // 版本选择自适应
	         size: 200.0, // 大小
	       ),
	       Positioned(
	           top: 0,
	           left: 0,
	           right: 0,
	           bottom: 0,
	           child: Center(
	             child: Container(
	               width: 30,
	               height: 30,
	               margin: const EdgeInsets.all(5),
	               padding: const EdgeInsets.all(5),
	               decoration: BoxDecoration(
	                 borderRadius: BorderRadius.circular(5),
	                 color: Colors.white,
	               ),
	               child: Image.asset('lib/assets/abc.png'),
	             ),
	           ))
	     ],
)


注意: 要保证二维码的信息量足够多,也就是二维码本身的内容多(也不要太多),图片也不要太大。如果二维码的信息丢失过多会导致无法识别二维码。

读取

flutter中读取二维码可以使用qr_code_scanner

官方网站
添加链接描述

安装

flutter pub add qr_code_scanner

问题
在进行真机运行时,报错了

uses-sdk:minSdkVersion 16 cannot be smaller than version 20 declared in library [:qr_code_scanner]

原因是:qr_code_scanner库要求的最低Android SDK版本为20。可以打开项目的android/app/build.gradle文件,找到minSdkVersion并将其修改为20或更高的值

补充
这里再使用vibration库,该库可以处理振动。当扫描成功后,再振动一下,更加的友好。

官方文档:https://pub-web.flutter-io.cn/packages/vibration

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  // 创建一个全局的key
  final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
  // 结果、控制器
  Barcode? result;
  QRViewController? controller;

  
  void reassemble() {
    super.reassemble();
    if (controller?.pauseCamera != null) {
      controller!.pauseCamera();
    } else {
      controller!.resumeCamera();
    }
  }

  
  void dispose() {
    super.dispose();
    controller?.dispose();
  }

  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Column(
        children: <Widget>[
          Expanded(
            flex: 5,
            child: QRView(
                key: qrKey,
                onQRViewCreated: _onQRViewCreated,
                // 中间的扫描区域,也可以不要,加上看着更舒服
                overlay: QrScannerOverlayShape(
                    borderColor: Colors.red,
                    borderRadius: 10,
                    borderLength: 30,
                    borderWidth: 10,
                    cutOutSize: 300)),
          ),
          Expanded(
            flex: 1,
            child: Center(
              child: (result != null)
                  ? Text(
                      'Barcode Type: ${describeEnum(result!.format)}   Data: ${result!.code}')
                  : const Text('Scan a code'),
            ),
          )
        ],
      ),
    );
  }

  void _onQRViewCreated(QRViewController controller) {
    this.controller = controller;
    controller.scannedDataStream.listen((scanData) {
      // 默认振动500ms
      Vibration.vibrate();
      setState(() {
        result = scanData;
      });
    });
  }
}

flutter:二维码生成与读取,dart 和 Flutter,flutter文章来源地址https://www.toymoban.com/news/detail-634485.html

到了这里,关于flutter:二维码生成与读取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • H5实现扫码读取二维码条形码功能(二维码+条形码)

    本文主要介绍二维码实现的原理 1、使用插件 npm install @zxing/library 2、主要用到 BrowserMultiFormatReader 这个构造函数,用于打开摄像头 视图 核心代码(以vue3写法举例) 二维码的样式 ``

    2024年02月11日
    浏览(52)
  • 二维码生成&点击按钮展示二维码

    使用HBuider 1.先安装插件 (地址 :  https://ext.dcloud.net.cn/plugin?id=1287) 这里直接就安装到了uni-modules里面了 import uQRCode from ‘@/uni_modules/Sansnn-uQRCode/components/u-qrcode/u-qrcode.vue’ 弹框用到了uni-app提供的uni-popup弹框,把二维码放到内容那块,替换即可

    2024年02月10日
    浏览(51)
  • js生成二维码和解析二维码

    这个整了好久,用的包换了好几次,所以记录一下 生成二维码 解析二维码 然后是两个引入的js reqrcode和qrcode

    2023年04月09日
    浏览(47)
  • Android studio 实现生成二维码和扫描二维码

    效果图 build.gradle(:app)添加依赖 Manifests.xml activity_main.xml MainActivity ScanActivity

    2024年02月10日
    浏览(44)
  • 生成微信小程序发布上线后的二维码 、获取微信小程序二维码、微信小程序二维码如何生成?

    情景: 1、在微信小程序审核完成,发布到线上后,想通过扫描小程序二维码进入小程序 2、可分享二维码出去,通过二维码扫码进入小程序 方法: 1、进入微信小程序的后台配置。链接:微信公众平台。(如图一) 2、进入 “设置” -- “ 基本设置” -- “小程序码及线下物

    2024年02月12日
    浏览(52)
  • 【支付系统】java springboot 生成二维码,二维码中文乱码

            支付系统必不可少的就是生成二维码,有时我们会需要将支付链接转换为二维码.用户通过移动设备扫描二维码调起支付. 该篇文章主要使用的是hutool自带的二维码生成功能.  1. 引入依赖(hutool 可以按需引入这里就直接使用all了) 2. hutool的官方已经有很详细的生成方式

    2024年02月11日
    浏览(39)
  • 如何生成微信小程序二维码,小程序内页二维码

    你自己得有个微信公众号,只需要知道小程序的名字就可以了 生成小程序二维码 第一步编辑素材 第二步搜索小程序名字,然后回车,下一步 第三步选小程序码 小程序内页二维码 第一步编辑素材 第二步搜索小程序名字,然后回车,下一步 第三步点击‘获取更多路径’ 第四

    2024年02月15日
    浏览(47)
  • Android实现生成二维码以及扫描二维码的功能(超级简单!)

    文章目录 ​​​​​​ 前言 二、实现生成二维码的功能 三、实现扫面二维码的功能 总结 提示:这里可以添加本文要记录的大概内容: 我是通过一个第三方库来实现二维码的生成,以及扫描二维码的功能,开源库如下: 一、布局文件如下 布局比较简单,就只有简单的一些

    2024年02月12日
    浏览(52)
  • AI生成二维码Stable diffusion生成可识别二维码【附完整教程】&【附完整案例】

    最近的炫酷QR比较火,所以今天给大家分享一下如何实现。首先我们知道QR二维码已经改变了信息的共享和获取方式。但是,QR码的视觉外观可能并不总是符合设计或艺术品的美学要求。为了解决这个问题,ControlNet for Stable Diffusion的工具在Stable Diffusion上可以将QR二维码信息隐藏

    2024年02月16日
    浏览(49)
  • 【Android】实现生成二维码、条形码和扫描二维码的功能

    目录 一、添加依赖 二、布局文件 三、实现生成二维码的功能 四、效果图 要先添加一个第三方库来实现二维码的生成以及扫描二维码的功能,开源库如下: 在build.grade(Moudle)中添加依赖: 效果如下: activity_main.xml: MainActivity.java: 简单粗暴! 感谢ლ(°◕‵ƹ′◕ლ)!!!

    2024年02月11日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包