Sobes.tech
Junior

Ce este Canvas în Android?

sobes.tech AI

Răspuns de la AI

Canvas în Android reprezintă o suprafață pentru desenare. Este un obiect care oferă metode pentru a desena primitive grafice (puncte, linii, dreptunghiuri, cercuri, text, imagini) pe o hartă bitmap (Bitmap) sau pe o altă suprafață.

Concepte principale:

  • Desen: Canvas oferă o API pentru a efectua operații de desenare, cum ar fi drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Sistem de coordonate: Utilizează un sistem bidimensional de coordonate, unde punctul (0,0) se află în colțul din stânga sus.
  • Stare: Canvas are o stare care include transformări curente (deplasare, scalare, rotație) și regiunea de decupare (clip region), pe care le poți salva și restaura (save() și restore()).
  • Paint: Obiectele Paint sunt folosite pentru a determina stilul de desenare, cum ar fi culoarea, grosimea liniei, umbrirea, fonturile etc. Canvas folosește Paint curent pentru fiecare operație de desenare.

Exemplu de utilizare într-o View personalizată:

// În interiorul metodei onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Creăm un obiect Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Setăm culoarea

    // Desenăm un dreptunghi
    canvas.drawRect(10, 10, 100, 100, paint);

    // Desenăm un cerc
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

    // Setăm textul
    paint.setColor(Color.BLACK);
    paint.setTextSize(30);
    canvas.drawText("Hello, Canvas!", 10, 200, paint);
}

Canvas este strâns legat de obiectele View. Când sistemul desenează un View, creează un obiect Canvas și îl transmite în metoda onDraw() a View. Apoi, View folosește acest Canvas pentru a desena conținutul său.