Что такое Canvas в Android?

Canvas в Android представляет собой поверхность для рисования.

Короткий ответ

Что ответить на собеседовании

Canvas в Android представляет собой поверхность для рисования. Это объект, который предоставляет методы для отрисовки графических примитивов (точек, линий, прямоугольников, кругов, текста, изображений) на битовой карте (Bitmap) или другой поверхности.

Подробный разбор

Ответ с пояснениями

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 для рисования своего содержимого.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку