drawTextOnPath function

void drawTextOnPath(
  1. Canvas canvas,
  2. String text,
  3. Size size,
  4. Path path,
  5. double? textPaddingLeft,
  6. double? textPaddingTop, {
  7. required Matrix4 fittingMatrix,
  8. TextStyle textStyle = const TextStyle(),
  9. TextDirection textDirection = TextDirection.ltr,
})

Implementation

void drawTextOnPath(
  final Canvas canvas,
  final String text,
  final Size size,
  final Path path,
  final double? textPaddingLeft,
  final double? textPaddingTop, {
  required final Matrix4 fittingMatrix,
  final TextStyle textStyle = const TextStyle(),
  final TextDirection textDirection = TextDirection.ltr,
}) {
  if (text.isEmpty) {
    return;
  }

  path.getBounds();

  final textPainter = getTextPainterFor(
    text,
    textStyle,
    textDirection: textDirection,
  );

  canvas.save();

  textPainter.paint(
      canvas,
      Offset(
          path.transform(fittingMatrix.storage).getBounds().center.dx +
              (textPaddingLeft ?? 0),
          path.transform(fittingMatrix.storage).getBounds().center.dy +
              (textPaddingTop ?? 0)));
  canvas.restore();
}