现在的APP中经常需要用自己的信息生成一个二维码给别人扫,下面就介绍一下Flutter中怎么生成一个带图片的二维码。
需要用到的插件qr_flutter
首先在 pubspec.yaml 文件中添加以下依赖,添加依赖后在 pubspec.yaml 运行 flutter packages get 或 使用IDE更新软件包。
dependencies: qr_flutter: ^3.0.1
完成以上步骤之后就可以在你需要生成二维码的页面引用qr_flutter
import 'package:qr_flutter/qr_flutter.dart';
在生成二维码之前先看一下它的api
属性 | 类型 | 描述 |
---|---|---|
version |
int | QrVersions.auto 或者介于1和40之间的值。有关限制和详细信息,请访问http://www.qrcode.com/en/about/version.html。 |
errorCorrectionLevel |
int | 定义的值QrErrorCorrectLevel 。例如:QrErrorCorrectLevel.L 。 |
size |
double | 二维码的(方形)大小。如果没有给出,将使用最短大小约束自动调整大小。 |
padding |
EdgeInsets | 填充二维码内边距。 |
backgroundColor |
Color | 背景颜色(默认为无)。 |
foregroundColor |
Color | 前景色(默认为黑色)。 |
gapless |
bool | 添加一个额外的像素以防止间隙(默认为true)。 |
errorStateBuilder |
QrErrorBuilder | 允许您Widget 在呈现QR码时出现错误时显示错误状态(例如:版本太低,输入太长等)。 |
constrainErrorBounds |
bool | 如果为true,则错误Widget 将被限制为将要绘制QR码的平方。如果为false,则错误状态Widget 将增大/缩小到所需的任何大小。 |
embeddedImage |
ImageProvider | 个ImageProvider 限定的图像以在QR码的中心重叠。 |
embeddedImageStyle |
QrEmbeddedImageStyle | 用于设置嵌入图像样式的属性。 |
embeddedImageEmitsError |
bool | 如果为true,则任何加载嵌入图像的失败都将触发errorStateBuilder 或呈现为空Container 。如果为false,则将呈现QR码,并且将忽略嵌入的图像。 |
通过上面给出的参数,生成一个大小200,图片大小30的二维码
Center( child: QrImage( data: '这是二维码的内容', size: 200, embeddedImage: NetworkImage('https://img2.woyaogexing.com/2019/09/06/f9afde08c5a4460cb08389a6c7f74c7a!600x600.jpeg'), embeddedImageStyle: QrEmbeddedImageStyle( size: Size(30, 30), ), ), )
效果图如下