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

Метод createShader

Метод createShader класса SweepGradient возвращает Shader, который заливает область цветами SweepGradient. Прямоугольник Rect задаёт область, вокруг центра которой идёт угловой переход. Результат передают в кисть холста.

Синтаксис

SweepGradient(colors: [Colors.red, Colors.blue]).createShader(Rect.fromLTWH(0, 0, 100, 50))

Параметры

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

Пример

Давайте зальём область шейдером градиента:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _SweepGradientShaderPainter(), ), ), ), ), ); } class _SweepGradientShaderPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { final rect = Rect.fromLTWH(0, 0, size.width, size.height); final gradient = SweepGradient(colors: [Colors.green, Colors.purple]); final paint = Paint()..shader = gradient.createShader(rect); canvas.drawRect(rect, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране виден градиент внутри CustomPaint.

Пример

Давайте сузим область рисования:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(180, 80), painter: _SweepGradientShaderPainter2(), ), ), ), ), ); } class _SweepGradientShaderPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final rect = Rect.fromLTWH(0, 0, size.width, size.height); final gradient = SweepGradient(colors: [Colors.green, Colors.purple]); final paint = Paint()..shader = gradient.createShader(rect); canvas.drawRect(rect, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране градиент в меньшем прямоугольнике.

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

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