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> {// 创建一个全局的keyfinal 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) {// 默认振动500msVibration.vibrate();setState(() {result = scanData;});});}
}

相关文章:
flutter:二维码生成与读取
前言 这csdn真的是服了,图片里有个二维码就直接变成违规图片了。至于效果的话,自己运行一下看看吧。 生成 flutter中生成二维码可以使用 qr_flutter。 官方文档 https://pub-web.flutter-io.cn/packages/qr_flutter 安装 flutter pub add qr_flutt…...
Camunda 7.x 系列【14】核心概念
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 流程定义1.1 Key1.2 版本1.3 挂起2. 流程实例3. 执行4. 活动实例5. 作业和作业定义本篇文…...
matplotlib 笔记:hist2d 2D直方图
创建二维直方图,用于显示数据分布的图表将数据划分成不同的区间(bin),并统计每个区间内数据点的数量 1 基本画法 默认bin的数量是10*10 N 1000 x np.random.randn(N) y np.random.randn(N) plt.hist2d(x, y) 2 修改bin的…...
数据库优化脚本执行报错
目录 一、执行数据库优化脚本 报错... 3 解决方法:... 4 1、直接注释掉RECYCLE_POOLS 赋值sql语句块... 4 2、手动修改脚本... 5 附录... 6 一、执行数据库优化脚本 报错 AutoParaAdj3.5_dm8.sql 1)manager中报错 -20001: 执行失败, -7065 数据未…...
TopN漏洞--sql注入
sql注入 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查…...
【论文阅读】UNICORN:基于运行时来源的高级持续威胁检测器(NDSS-2020)
UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats NDSS-2020 哈佛大学 Han X, Pasquier T, Bates A, et al. Unicorn: Runtime provenance-based detector for advanced persistent threats[J]. arXiv preprint arXiv:2001.01525, 2020. 源码&…...
Linux的基本介绍和常用命令
Linux和Windows的主要区别 Linux和Windows是两种具有不同特性的操作系统,它们具有各自的优点和适用场景。选择哪一个操作系统主要取决于用户的需求、技术背景及使用场景等。 Linux和Windows的主要区别如下: 开源VS闭源:Linux是开源的系统&…...
Flutter 中
在Get状态管理库中,GetxController是一个用于管理状态和逻辑的基类。它具有一系列的生命周期方法,用于在不同的阶段执行相关的操作。下面是GetxController的生命周期方法及其执行顺序: onInit(): 这个方法在GetxController创建并加入到管理器…...
可视化高级绘图技巧100篇-总论
前言 优秀的数据可视化作品可以用三个关键词概括:准确、清晰、优雅。 准确:精准地反馈数据的特征信息(既不遗漏也不冗余,不造成读者疏漏&误读细节) 清晰:获取图表特征信息的时间越短越好 优雅&…...
Android AOSP源码编译——AOSP下载(一)
一、电脑配置 Ubuntu16.04 16G,硬盘的大小最好大于300G (我这边是找了个win电脑装了双系统 没有使用虚拟机的方式) 二、基础环境配置 1、安装git sudo apt install git配置git email和name git config --global user.email "youexample.com" git conf…...
Qt 文件对话框使用 Deepin风格
当你在Deepin或UOS 上开发 Qt 程序时,如果涉及到文件对话框功能,那么就会遇到调用原生窗口的问题。 如果你使用的是官方的Qt版本,那么在Deepin或者UOS系统上,弹出的文件对话框会是如下这样: 而Deepin或UOS系统提供的默…...
.net core 配置swagger
要在 ASP.NET Core 中配置 Swagger,您需要遵循以下步骤: 添加 Swagger NuGet 包:将 Swashbuckle.AspNetCore NuGet 包添加到项目中。 在 Startup.cs 文件中进行配置: using Microsoft.OpenApi.Models;public class Startup {// 省…...
leetcode707. 设计链表(单链表+虚拟头指针+双指针遍历)
题目:leetcode707. 设计链表 描述: 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链…...
电脑麦克风没声音?
这3招就可以解决! 在我们使用电脑录制视频时,有时会遇到一个令人头疼的问题:麦克风没有声音。那么,为什么会出现这种情况呢?更重要的是,我们应该如何解决这个问题呢?本文将介绍3种方法…...
React Native元素旋转一定的角度
mMeArrowIcon: {fontSize: 30, color: #999, transform: [{rotate: 180deg}]},<Icon name"arrow" style{styles.mMeArrowIcon}></Icon>参考链接: https://reactnative.cn/docs/transforms https://chat.xutongbao.top/...
LeetCode 1749. 任意子数组和的绝对值的最大值
【LetMeFly】1749.任意子数组和的绝对值的最大值 力扣题目链接:https://leetcode.cn/problems/maximum-absolute-sum-of-any-subarray/ 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 ... nums…...
初学HTML:在线简易画板设计。
最近在HTML,记录下一点点成果。 设计了一个简易画板,通过HTML的Canvas元素实现一个在线画板,用户可以在上面绘制图形或涂鸦。 下面是运行效果: 下面是代码: <!DOCTYPE html> <html> <head><ti…...
IDEA项目实践——Spring框架简介,以及IOC注解
系列文章目录 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 文章目…...
Scala(第一章Scala入门)
文章目录 1.1 概述 1.1.1 为什么学习Scala1.1.2 Scala发展历史1.1.3 Scala和Java关系1.1.4 Scala语言特点 1.2 Scala环境搭建1.3 Scala插件安装1.4 HelloWorld案例 1.4.1 创建IDEA项目工程1.4.2 class和object说明1.4.3 Scala程序反编译 1.5 关联Scala源码1.6官方编程指南 1.1…...
Linux tcpdump 命令详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的…...
游戏语言障碍终结者:XUnity.AutoTranslator让所有Unity游戏秒变中文版 [特殊字符]
游戏语言障碍终结者:XUnity.AutoTranslator让所有Unity游戏秒变中文版 🎮 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂的日文、韩文或英文游戏而烦恼吗?…...
深度解析|MiniMax M2.7:开启模型自我进化的 Agent 旗舰,重新定义国产大模型天花板
摘要2026 年 3 月 18 日,MiniMax(稀宇科技)正式发布 M2 系列第三代旗舰大模型 ——MiniMax M2.7,以 “全球首个原生支持自我进化的文本大模型” 为核心标签,凭借 MoE 稀疏架构、200K 超长上下文、顶尖 Agent 协作能力与…...
Python量化回测框架Backtrader:从事件驱动到双均线策略实战
1. 项目概述:一个量化交易者的“瑞士军刀”如果你在量化交易领域摸爬滚打过一段时间,或者正试图从零开始构建自己的交易策略回测系统,那么“mementum/backtrader”这个项目标题,对你来说可能意味着一个巨大的惊喜,也可…...
解锁音乐自由:用QMCDecode让QQ音乐文件畅游所有设备
解锁音乐自由:用QMCDecode让QQ音乐文件畅游所有设备 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换…...
使用curl命令测试Taotoken大模型API为视频片段生成标签
使用curl命令测试Taotoken大模型API为视频片段生成标签 1. 准备工作 在开始之前,请确保您已拥有有效的Taotoken API Key。登录Taotoken控制台,在「API密钥管理」页面可以创建或查看现有密钥。同时建议在「模型广场」中确认当前可用的模型ID,…...
终极指南:如何用MediaPipe TouchDesigner插件实现零代码AI视觉交互?
终极指南:如何用MediaPipe TouchDesigner插件实现零代码AI视觉交互? 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 你是…...
Qwen3-14B镜像免配置优势:预编译PyTorch 2.4避免CUDA版本冲突
Qwen3-14B镜像免配置优势:预编译PyTorch 2.4避免CUDA版本冲突 1. 开箱即用的私有部署方案 对于想要快速部署Qwen3-14B模型的企业和个人开发者来说,环境配置往往是最令人头疼的问题。传统部署方式需要手动安装CUDA、PyTorch等依赖库,版本兼容…...
番茄小说下载器终极指南:5分钟打造个人离线图书馆
番茄小说下载器终极指南:5分钟打造个人离线图书馆 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 番茄小说下载器是一款功能强大的开源工具,专为数字阅…...
3分钟极速上手:Android Studio中文语言包安装全攻略 [特殊字符]
3分钟极速上手:Android Studio中文语言包安装全攻略 🚀 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还…...
别再只当自拍杆!用Osmo Mobile 6的FPV和旋转模式拍出电影感Vlog(含运镜分解)
别再只当自拍杆!用Osmo Mobile 6的FPV和旋转模式拍出电影感Vlog(含运镜分解) 当你手持Osmo Mobile 6时,它绝不仅仅是一个防抖自拍杆——那些被90%用户忽略的FPV模式和旋转拍摄功能,正是专业创作者与普通用户的分水岭。…...
