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

Метод clipRect

Метод clipRect класса Canvas обрезает последующий рисунок по прямоугольнику. Область задаёт Rect. Команды после вызова рисуют только внутри неё.

Синтаксис

canvas.clipRect(rect)

Параметры

Параметр Описание
rect Прямоугольник Rect.

Пример

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

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _ClipRectPainter(), ), ), ), ), ); } class _ClipRectPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.clipRect(Rect.fromLTWH(0, 0, size.width / 2, size.height)); final paint = Paint()..color = Colors.red; canvas.drawRect(Rect.fromLTWH(20, 20, 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: _ClipRectPainter2(), ), ), ), ), ); } class _ClipRectPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.clipRect(Rect.fromLTWH(0, 0, size.width / 2, size.height)); final paint = Paint()..color = Colors.red; canvas.drawRect(Rect.fromLTWH(20, 20, size.width, size.height), paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

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

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

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