Sobes.tech
Junior

Cos'è Canvas in Android?

sobes.tech AI

Risposta dell'AI

Canvas in Android rappresenta una superficie su cui disegnare. È un oggetto che fornisce metodi per disegnare primitive grafiche (punti, linee, rettangoli, cerchi, testo, immagini) su una mappa di bit (Bitmap) o su un'altra superficie.

Concetti principali:

  • Disegno: Canvas fornisce un'API per eseguire operazioni di disegno come drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Sistema di coordinate: Utilizza un sistema di coordinate bidimensionale, dove il punto (0,0) si trova in alto a sinistra.
  • Stato: Canvas ha uno stato che include le trasformazioni correnti (traslazione, scalatura, rotazione) e l'area di ritaglio (clip region), che possono essere salvate e ripristinate (save() e restore()).
  • Paint: Gli oggetti Paint sono usati per definire lo stile di disegno, come colore, spessore della linea, ombreggiatura, font, ecc. Canvas utilizza il Paint corrente per ogni operazione di disegno.

Esempio di utilizzo in una View personalizzata:

// All'interno del metodo onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Creare un oggetto Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Imposta il colore

    // Disegnare un rettangolo
    canvas.drawRect(10, 10, 100, 100, paint);

    // Disegnare un cerchio
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

    // Impostare il testo
    paint.setColor(Color.BLACK);
    paint.setTextSize(30);
    canvas.drawText("Hello, Canvas!", 10, 200, paint);
}

Canvas è strettamente collegato agli oggetti View. Quando il sistema disegna una View, crea un oggetto Canvas e lo passa al metodo onDraw() della View. La View quindi utilizza questo Canvas per disegnare il suo contenuto.