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:
Canvaszapewnia API do wykonywania operacji rysowania, takich jakdrawPoint(),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:
Canvasma 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()irestore()). - Paint: Obiekty
Paintsłużą do określenia stylu rysowania, takiego jak kolor, grubość linii, cieniowanie, czcionki itp.Canvasużywa aktualnegoPaintdla 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.