Signature Canvas
A Flutter package for drawing signatures on a canvas. This package provides functionality to draw smooth lines based on user input gestures.
Features
- Draw smooth lines on a canvas.
- Undo and redo drawing actions.
- Clear the canvas.
Installation
Add the following line to your pubspec.yaml dependencies:
dependencies:
flutter_signature_package:
git:
url: https://github.com/Dojibery/flutter-signature-package
Usage
Import the package in your Dart file:
import 'package:my_signature_package/flutter_signature_package.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (_) => DragState(),
child: MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Signature Canvas Example'),
),
body: SafeArea(
child: Column(
children: [
Expanded(child: SignatureCanvas()),
ActionButtons(),
],
),
),
),
),
);
}
}
Explanation
- DragState: Manages the state of drawing points, undo, redo operations.
- SignatureCanvas: Widget for drawing signatures based on user input.
- ActionButtons: Provides UI buttons for undo, redo, and clear actions.
Examples
Basic Usage
import 'package:flutter/material.dart';
import 'package:my_signature_package/flutter_signature_package.dart';
import 'package:provider/provider.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (_) => DragState(),
child: MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Signature Canvas Example'),
),
body: SafeArea(
child: Column(
children: [
Expanded(child: SignatureCanvas()),
ActionButtons(),
],
),
),
),
),
);
}
}
Customize Stroke Width
SignaturePainter(
drawingPoints: dragState.drawingPoints,
strokeWidth: 4.0, // Adjust stroke width for thicker lines
)
Contributing
Contributions are welcome! Feel free to open issues and pull requests to suggest new features, report bugs, or improve the codebase.
License
This project is licensed under the MIT License - see the LICENSE file for details.