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