QR.Flutter是一个扑朔迷离的库,可通过小部件或自定义画家进行简单而快速的QR码渲染。
请不要提交“如何..?”的问题。或“怎么办..?”类型问题。他们几乎会立即关闭。如果您有疑问,请在讨论委员会或堆栈溢出中询问他们。他们会在那里得到回答。
使用问题会产生大量的噪音,并导致实际问题越来越慢。
版本兼容性:4.0.0+支持无效的安全性,并需要兼容的颤动版本。如果您使用的是不兼容的Flutter版本,请使用此库的3.x版本。
您应该将以下内容添加到您的pubspec.yaml文件:
dependencies :
qr_flutter : ^4.1.0注意:如果您使用的是“颤音master频道”,则遇到构建问题,或者想尝试最新和最伟大的问题,则应使用master分支,而不是特定的版本版本。为此,请在pubspec.yaml中使用以下配置:
dependencies :
qr_flutter :
git :
url : https://github.com/theyakka/qr.flutter请记住, master分支可能不稳定。
将依赖关系添加到pubspec.yaml之后flutter packages get或更新软件包。
首先,导入代码中的依赖性:
import 'package:qr_flutter/qr_flutter.dart' ;接下来,要渲染基本的QR代码,您可以使用以下代码(或类似的代码):
QrImageView (
data : '1234567890' ,
version : QrVersions .auto,
size : 200.0 ,
),根据您的数据要求,您可能需要调整QR码输出。可用以下选项:
| 财产 | 类型 | 描述 |
|---|---|---|
version | int | QrVersions.auto或1到40之间的值。有关限制和详细信息,请参见http://www.qrcode.com/en/about/version.html。 |
errorCorrectionLevel | int | 在QrErrorCorrectLevel上定义的值。例如: QrErrorCorrectLevel.L 。 |
size | 双倍的 | 图像的(平方)大小。如果没有给出,将使用最短尺寸约束自动大小。 |
padding | 边缘组 | 围绕QR码数据的填充。 |
backgroundColor | 颜色 | 背景颜色(默认为无)。 |
eyeStyle | qreyestyle | 配置QR码眼睛(角落)形状和颜色。 |
dataModuleStyle | Qrdatamodulestyle | 配置点的形状和颜色。 |
gapless | 布尔 | 添加一个额外的像素以防止空白(默认值为TAME)。 |
errorStateBuilder | QRERRORBUILDER | 允许您在发生QR码的错误时显示错误状态Widget (例如:版本太低,输入太长等)。 |
constrainErrorBounds | 布尔 | 如果为true,则错误的Widget将被限制在QR码将要插入的平方。如果是错误的,则错误状态Widget将增长/缩小到所需的任何尺寸。 |
embeddedImage | ImageProvider | 定义要在QR码中心覆盖的映像ImageProvider 。 |
embeddedImageStyle | QREMBEDDEDIMAGESTYLE | 为嵌入式图像设计的属性。 |
embeddedImageEmitsError | 布尔 | 如果是thue,则任何未能加载嵌入式图像的人都会触发errorStateBuilder构建器或渲染空Container 。如果为false,则将渲染QR码,并且嵌入式图像将被忽略。 |
semanticsLabel | 细绳 | 屏幕读取器将使用semanticsLabel来描述QR代码的内容。 |
borderRadius | 双倍的 | 形状类型QrEyeShape.square , QrDataModuleShape.square , EmbeddedImageShape.square的设置转弯。设置适当的样式。 |
roundedOutsideCorners | 布尔 | 如果是真的,则数据的外角是圆形的。设置为QrDataModuleStyle 。默认情况下到达borderRadius 。只有QrDataModuleShape.square 。 |
outsideBorderRadius | 双倍的 | 如果外部圆形outsideBorderRadius绘制与内部的borderRadius不同,则设置。不过是borderRadius 。只有QrDataModuleShape.square |
gradient | 坡度 | 将代码的纯色更改为梯度,例如LinearGradient 。 |
safeArea | 布尔 | 如果是正确的,则数据隐藏在embeddedImage后面。设置为QrEmbeddedImageStyle 。 |
safeAreaMultiplier | 双倍的 | 乘数safeArea尺寸。 |
/example目录中有一个简单的,有效的示例幻影应用程序。您可以使用它来使用所有选项。
另外,以下示例为您提供了有关如何使用库的快速概述。
基本的QR码看起来像:
QrImageView (
data : 'This is a simple QR code' ,
version : QrVersions .auto,
size : 320 ,
gapless : false ,
)带有图像的QR码(来自您应用程序的资产)看起来像:
QrImageView (
data : 'This QR code has an embedded image as well' ,
version : QrVersions .auto,
size : 320 ,
gapless : false ,
embeddedImage : AssetImage ( 'assets/images/my_embedded_image.png' ),
embeddedImageStyle : QrEmbeddedImageStyle (
size : Size ( 80 , 80 ),
),
)在无法验证QR码的情况下显示错误状态:
QrImageView (
data : 'This QR code will show the error state instead' ,
version : 1 ,
size : 320 ,
gapless : false ,
errorStateBuilder : (cxt, err) {
return Container (
child : Center (
child : Text (
'Uh oh! Something went wrong...' ,
textAlign : TextAlign .center,
),
),
);
},
)QR码,内部和外部的圆角圆形和嵌入式图像的安全区域:
QrImageView (
data : 'London is the capital of Great Britain' ,
version : QrVersions .auto,
size : 320 ,
eyeStyle : const QrEyeStyle (
borderRadius : 10 ,
),
dataModuleStyle : const QrDataModuleStyle (
borderRadius : 5 ,
roundedOutsideCorners : true ,
),
embeddedImage : AssetImage ( 'assets/images/my_embedded_image.png' ),
embeddedImageStyle : QrEmbeddedImageStyle (
size : Size . square ( 40 ),
color : Colors .white,
safeArea : true ,
safeAreaMultiplier : 1.1 ,
embeddedImageShape : EmbeddedImageShape .square,
borderRadius : 10 ,
),
)带有梯度的QR码:
QrImageView (
data : 'Rainbow after the rain' ,
version : QrVersions .auto,
size : 320 ,
gradient : LinearGradient (
begin : Alignment .bottomLeft,
end : Alignment .topRight,
colors : [
Color ( 0xffff0000 ),
Color ( 0xffffa500 ),
Color ( 0xffffff00 ),
Color ( 0xff008000 ),
Color ( 0xff0000ff ),
Color ( 0xff4b0082 ),
Color ( 0xffee82ee ),
],
),
)感谢凯文·摩尔(Kevin Moore)的出色QR-飞镖图书馆。这是这个库的核心。
有关作者/撰稿人信息,请参见AUTHORS文件。
QR.Flutter根据BSD-3许可发布。有关详细信息,请参见LICENSE 。