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

Метод clipRRect

Метод clipRRect класса Canvas обрезает рисунок по скруглённому прямоугольнику. Область задаёт RRect. Углы обрезки повторяют скругление фигуры.

Синтаксис

canvas.clipRRect(rrect)

Параметры

Параметр Описание
rrect Скруглённый прямоугольник RRect.

Пример

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

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _ClipRRectPainter(), ), ), ), ), ); } class _ClipRRectPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { final r = RRect.fromRectAndRadius( Rect.fromLTWH(0, 0, size.width, size.height), Radius.circular(24)); canvas.clipRRect(r); final paint = Paint()..color = Colors.amber; 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: _ClipRRectPainter2(), ), ), ), ), ); } class _ClipRRectPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final r = RRect.fromRectAndRadius( Rect.fromLTWH(0, 0, size.width, size.height), Radius.circular(24)); canvas.clipRRect(r); final paint = Paint()..color = Colors.amber; canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

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

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

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