【flutter】手动签名并且保存

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ivy_doudou/article/details/100161247

1、插件

signature: ^2.0.0   #签名

2、测试页面

import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:signature/signature.dart';

class Autograph extends StatefulWidget {
  @override
  _AutographState createState() => _AutographState();
}

class _AutographState extends State<Autograph> {
  var _signatureCanvas = Signature(
    height: 300,
    backgroundColor: Colors.lightBlueAccent,
  );

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Builder(
        builder: (context) => Scaffold(
          body: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              //SIGNATURE CANVAS
              _signatureCanvas,
              //OK AND CLEAR BUTTONS
              Container(
                  decoration: const BoxDecoration(
                    color: Colors.black,
                  ),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    mainAxisSize: MainAxisSize.max,
                    children: <Widget>[
                      //SHOW EXPORTED IMAGE IN NEW ROUTE
                      IconButton(
                        icon: const Icon(Icons.check),
                        color: Colors.blue,
                        onPressed: () async {
                          if (_signatureCanvas.isNotEmpty) {
                            var data = await _signatureCanvas.exportBytes();
                            print("::::"+data.toString());
                            Navigator.of(context).push(
                              MaterialPageRoute(
                                builder: (BuildContext context) {
                                  return Scaffold(
                                    appBar: AppBar(),
                                    body: Container(
                                      color: Colors.grey[300],
                                      child: Image.memory(data),
                                    ),
                                  );
                                },
                              ),
                            );
                          }
                        },
                      ),
                      //CLEAR CANVAS
                      IconButton(
                        icon: const Icon(Icons.clear),
                        color: Colors.blue,
                        onPressed: () {
                          setState(() {
                            return _signatureCanvas.clear();
                          });
                        },
                      ),
                    ],
                  )),
            ],
          ),
        ),
      ),
    );
  }
}

猜你喜欢

转载自blog.csdn.net/ivy_doudou/article/details/100161247