现在的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),
),
),
)
效果图如下