Flutter数字签名插件digital_signature的使用
Flutter数字签名插件digital_signature的使用
该库用于通过绘制手势捕获签名。您可以使用手指、笔或鼠标在平板电脑、触摸屏等设备上绘制自己的签名。此签名垫小部件还允许您将签名保存为图像。
使用
创建一个新的Flutter项目
打开一个Flutter项目,并转到pubspec.yaml
文件并添加以下依赖项:
dependencies:
digital_signature: ^0.0.1
运行 flutter pub get
来安装依赖。
在lib目录下创建一个新的dart文件用于数字签名
在您的项目中创建一个名为digital_signature.dart
的新Dart文件。
创建一个数字签名类
在这个类中,我们需要定义一个控制器。
初始化一个控制器。它将包含签名点、笔宽和笔颜色。这将允许您与小部件进行交互。
import 'package:digital_signature/digital_signature.dart';
class DigitalSignature extends StatefulWidget {
[@override](/user/override)
_DigitalSignatureState createState() => _DigitalSignatureState();
}
class _DigitalSignatureState extends State<DigitalSignature> {
// 初始化控制器
final SignatureController controller = SignatureController(
penStrokeWidth: 2, // 设置笔宽
penColor: Colors.white, // 设置笔颜色
);
late final Uint8List? signature;
// 导出签名到png字节
Future<Uint8List?> exportSignature() async {
final exportController = SignatureController(
penStrokeWidth: 2,
exportBackgroundColor: Colors.white,
penColor: Colors.black,
points: controller.points,
);
final signatureBytes = exportController.toPngBytes();
// 清理内存
exportController.dispose();
return signatureBytes;
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('数字签名'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 定义数字签名垫
SizedBox(
height: 300,
width: 350,
child: Signature(
height: 300,
width: 350,
controller: controller,
backgroundColor: Colors.grey,
),
),
SizedBox(height: 20),
// 导出签名
ElevatedButton(
onPressed: () async {
signature = await exportSignature();
setState(() {});
},
child: Text('导出签名'),
),
// 显示签名
signature != null ? Center(child: Image.memory(signature!)) : Container()
],
),
),
);
}
}
更多关于Flutter数字签名插件digital_signature的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复