Sobes.tech
Junior

Čo je Canvas v Androidu?

sobes.tech AI

Odpoveď od AI

Canvas v Androidu predstavuje povrch za crtanje. To je objekt koji pruža metode za crtanje grafičkih primitivan (tačaka, linija, pravougaonika, krugova, teksta, slika) na bitmap (Bitmap) ili drugoj površini.

Glavni koncepti:

  • Crtanje: Canvas pruža API za izvršavanje operacija crtanja kao što su drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Koordinatni sistem: Koristi dvodimenzionalni koordinatni sistem, gde je tačka (0,0) u gornjem levom uglu.
  • Stanje: Canvas ima stanje koje uključuje trenutne transformacije (pomak, skaliranje, rotacija) i oblast sečenja (clip region), koje se mogu čuvati i obnavljati (save() i restore()).
  • Paint: Objekti Paint se koriste za definisanje stila crtanja, kao što su boja, debljina linije, senčenje, fontovi itd. Canvas koristi trenutni Paint za svaku operaciju crtanja.

Primer korišćenja u prilagođenom View:

// Unutar metode onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Kreiranje objekta Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Postavljanje boje

    // Crtanje pravougaonika
    canvas.drawRect(10, 10, 100, 100, paint);

    // Crtanje kruga
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

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

Canvas je usko povezan sa objektima View. Kada sistem crta View, kreira objekat Canvas i prosleđuje ga metodi onDraw() View. Zatim, View koristi ovaj Canvas za crtanje svog sadržaja.