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