FLUTTER ECOSYSTEM

dnfield/flutter_path_drawing

dnfield/flutter_path_drawing open-source repository details.

flutter_path_drawing のプロジェクト画像
Stars
170
Forks
32
最終プッシュ(UTC)
2022/11/01
プロジェクト状態
公開中
Dan Field GitHub avatar
GITHUB User

Dan Field ↗

Software Engineer @google for @flutter

@google
言語Dart

このリポジトリが公開するパッケージ

使用している依存関係

依存関係一覧 7 件

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

README を開く / 閉じる

path_drawing

pub package

A Flutter library to assist with creating and manipulating paths.

Currently supports parsing a Path from an SVG path data string (including normalizing the path commands to be amenable to Flutter's exposed Path methods).

Dash paths has an initial implementation that relies on flutter 0.3.6 at a minimum.

Planned for future release(s):

  • Trim paths

Example

Parse some path from svg string:

import 'package:path_drawing/path_drawing.dart';

final trianglePath = parseSvgPathData('M150 0 L75 200 L225 200 Z');

Create CustomPainter:

class FilledPathPainter extends CustomPainter {
  const FilledPathPainter({
    @required this.path,
    @required this.color,
  });

  final Path path;
  final Color color;

  @override
  bool shouldRepaint(FilledPathPainter oldDelegate) =>
      oldDelegate.path != path || oldDelegate.color != color;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.drawPath(
      path,
      Paint()
        ..color = color
        ..style = PaintingStyle.fill,
    );
  }

  @override
  bool hitTest(Offset position) => path.contains(position);
}

Use it inside CustomPaint:

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () => print('tap'),
      child: CustomPaint(
        painter: FilledPathPainter(
          path: trianglePath,
          color: Colors.blue,
        ),
      ),
    );
  }
}

More examples can be found in example folder