Sobes.tech
Junior

Какво е Canvas в Android?

sobes.tech AI

Отговор от 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 за рисуване на съдържанието си.