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

Метод scale

Метод scale класса Canvas масштабирует систему координат. Первое число множит горизонталь, второе вертикаль. 1 оставляет размер. Число меньше единицы уменьшает.

Синтаксис

canvas.scale(sx, sy)

Параметры

Параметр Описание
sx Множитель по горизонтали. 1 оставляет ширину.
sy Множитель по вертикали. Если аргумент не передан, берётся множитель по горизонтали.

Пример

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

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _ScalePainter(), ), ), ), ), ); } class _ScalePainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.scale(1.5, 1.5); canvas.drawRect(Rect.fromLTWH(10, 10, 40, 30), Paint()..color = Colors.pink); } @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: _ScalePainter2(), ), ), ), ), ); } class _ScalePainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.scale(1.5, 1.5); canvas.drawRect(Rect.fromLTWH(10, 10, 40, 30), Paint()..color = Colors.pink); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

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

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

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