Sobes.tech
Junior

Czym jest Canvas w Android?

sobes.tech AI

Odpowiedź od AI

Canvas w Androidzie reprezentuje powierzchnię do rysowania. To obiekt, który udostępnia metody do rysowania prymitywów graficznych (punkty, linie, prostokąty, koła, tekst, obrazy) na mapie bitowej (Bitmap) lub innej powierzchni.

Główne koncepcje:

  • Rysowanie: Canvas zapewnia API do wykonywania operacji rysowania, takich jak drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • System współrzędnych: Używa dwuwymiarowego systemu współrzędnych, gdzie punkt (0,0) znajduje się w lewym górnym rogu.
  • Stan: Canvas ma stan, który obejmuje bieżące transformacje (przesunięcie, skalowanie, obrót) i obszar przycinania (clip region), które można zapisywać i przywracać (save() i restore()).
  • Paint: Obiekty Paint służą do określenia stylu rysowania, takiego jak kolor, grubość linii, cieniowanie, czcionki itp. Canvas używa aktualnego Paint dla każdej operacji rysowania.

Przykład użycia w niestandardowym View:

// Wewnątrz metody onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Tworzymy obiekt Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Ustawiamy kolor

    // Rysujemy prostokąt
    canvas.drawRect(10, 10, 100, 100, paint);

    // Rysujemy koło
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

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

Canvas jest ściśle powiązany z obiektami View. Gdy system rysuje View, tworzy obiekt Canvas i przekazuje go do metody onDraw() View. Następnie View używa tego Canvas do rysowania swojej zawartości.