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

Метод toPaint

Метод toPaint класса BoxShadow переносит color и blurRadius в Paint для drawShadow. Кисть Paint получает цвет тени и размытие. Её используют там, где тень рисуют вручную на холсте.

Синтаксис

shadow.toPaint()

Пример

Давайте нарисуем тень через toPaint:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _ShadowPaint(), ), ), ), ), ); } class _ShadowPaint extends CustomPainter { @override void paint(Canvas canvas, Size size) { final shadow = BoxShadow(color: Colors.black45, blurRadius: 4, offset: Offset(4, 4)); final rect = Rect.fromLTWH(40, 20, 120, 50); canvas.drawRect(rect.shift(shadow.offset), shadow.toPaint()); canvas.drawRect(rect, Paint()..color = Colors.white); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране белый блок с тенью.

Пример

Давайте увеличим blurRadius:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _ShadowPaint2(), ), ), ), ), ); } class _ShadowPaint2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final shadow = BoxShadow(color: Colors.black38, blurRadius: 12, offset: Offset(6, 6)); final rect = Rect.fromLTWH(30, 15, 140, 60); canvas.drawRect(rect.shift(shadow.offset), shadow.toPaint()); canvas.drawRect(rect, Paint()..color = Colors.amber); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране блок с более мягкой тенью.

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

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