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

Метод save

Метод save класса Canvas сохраняет текущее состояние Canvas. В снимок попадают текущие сдвиг, масштаб, поворот и область обрезки. Вернуть снимок можно парным вызовом restore.

Синтаксис

canvas.save()

Пример

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

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

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

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

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