Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
299 of 1024 menu
◀ ▶

Метод clipPath

Метод clipPath класса Canvas обрезает рисунок по Path. Область задаёт контур Path. За пределами контура новые команды ничего не рисуют.

Синтаксис

canvas.clipPath(path)

Параметры

Параметр Описание
path Контур Path, по которому рисуют или обрезают.

Пример

Давайте вызовем clipPath на CustomPaint:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _ClipPathPainter(), ), ), ), ), ); } class _ClipPathPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { final path = Path() ..addOval(Rect.fromCircle(center: Offset(size.width / 2, size.height / 2), radius: 50)); canvas.clipPath(path); final paint = Paint()..color = Colors.cyan; canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране виден результат рисования на холсте.

Пример

Давайте повторим рисунок в области побольше:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(280, 120), painter: _ClipPathPainter2(), ), ), ), ), ); } class _ClipPathPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final path = Path() ..addOval(Rect.fromCircle(center: Offset(size.width / 2, size.height / 2), radius: 50)); canvas.clipPath(path); final paint = Paint()..color = Colors.cyan; canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране та же фигура в более широком CustomPaint.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить