Sobes.tech
Junior

Co je to Canvas v Androidu?

sobes.tech AI

Odpověď od AI

Canvas v Androidu představuje plochu pro kreslení. Je to objekt, který poskytuje metody pro kreslení grafických primitiv (body, čáry, obdélníky, kruhy, texty, obrázky) na bitmapě (Bitmap) nebo jiné ploše.

Hlavní koncepty:

  • Kreslení: Canvas poskytuje API pro provádění kreslicích operací, jako jsou drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Souřadnicový systém: Používá dvourozměrný souřadnicový systém, kde bod (0,0) je v levém horním rohu.
  • Stav: Canvas má stav, který zahrnuje aktuální transformace (posun, škálování, rotace) a oblast ořezu (clip region), které lze ukládat a obnovovat (save() a restore()).
  • Paint: Objekty Paint se používají k určení stylu kreslení, například barvy, tloušťky čáry, stínování, fontů atd. Canvas používá aktuální Paint pro každou kreslicí operaci.

Příklad použití v vlastní View:

// Uvnitř metody onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Vytvoření objektu Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Nastavení barvy

    // Nakreslení obdélníku
    canvas.drawRect(10, 10, 100, 100, paint);

    // Nakreslení kruhu
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

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

Canvas je úzce spojen s objekty View. Když systém kreslí View, vytvoří objekt Canvas a předá ho metodě onDraw() View. View pak používá tento Canvas k vykreslení svého obsahu.