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