Назад к вопросам
Junior
100
questionbank
Что такое Canvas в Android?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Canvas в Android представляет собой поверхность для рисования. Это объект, который предоставляет методы для отрисовки графических примитивов (точек, линий, прямоугольников, кругов, текста, изображений) на битовой карте (Bitmap) или другой поверхности.
Основные концепции:
- Рисование:
Canvasпредоставляет API для выполнения операций рисования, таких какdrawPoint(),drawLine(),drawRect(),drawCircle(),drawText(),drawBitmap(). - Координатная система: Использует двумерную координатную систему, где точка (0,0) находится в левом верхнем углу.
- Состояние:
Canvasимеет состояние, включающее текущие преобразования (сдвиг, масштабирование, поворот) и область отсечения (clip region), которые можно сохранять и восстанавливать (save()иrestore()). - Paint: Объекты
Paintиспользуются для определения стиля рисования, такого как цвет, толщина линии, затенение, шрифты и т.д.Canvasиспользует текущийPaintдля каждой операции рисования.
Пример использования в кастомном View:
// Внутри метода onDraw()
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Создаем объект Paint
Paint paint = new Paint();
paint.setColor(Color.RED); // Устанавливаем цвет
// Рисуем прямоугольник
canvas.drawRect(10, 10, 100, 100, paint);
// Рисуем круг
paint.setColor(Color.BLUE);
canvas.drawCircle(150, 150, 50, paint);
// Устанавливаем текст
paint.setColor(Color.BLACK);
paint.setTextSize(30);
canvas.drawText("Hello, Canvas!", 10, 200, paint);
}
Canvas тесно связан с объектами View. Когда система отрисовывает View, она создает объект Canvas и передает его в метод onDraw() View. View затем использует этот Canvas для рисования своего содержимого.