Sobes.tech
Junior

O que é Canvas no Android?

sobes.tech IA

Resposta da IA

O Canvas no Android representa uma superfície para desenhar. É um objeto que fornece métodos para desenhar primitivas gráficas (pontos, linhas, retângulos, círculos, texto, imagens) em um mapa de bits (Bitmap) ou outra superfície.

Conceitos principais:

  • Desenho: Canvas fornece uma API para realizar operações de desenho, como drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Sistema de coordenadas: Utiliza um sistema de coordenadas bidimensional, onde o ponto (0,0) está no canto superior esquerdo.
  • Estado: Canvas tem um estado que inclui transformações atuais (deslocamento, escalonamento, rotação) e a região de recorte (clip region), que podem ser guardadas e restauradas (save() e restore()).
  • Paint: Os objetos Paint são usados para definir estilos de desenho, como cor, espessura da linha, sombreado, fontes, etc. Canvas usa o Paint atual para cada operação de desenho.

Exemplo de uso numa View personalizada:

// Dentro do método onDraw()
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // Criar objeto Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Definir cor

    // Desenhar retângulo
    canvas.drawRect(10, 10, 100, 100, paint);

    // Desenhar círculo
    paint.setColor(Color.BLUE);
    canvas.drawCircle(150, 150, 50, paint);

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

Canvas está estreitamente relacionado com objetos View. Quando o sistema desenha um View, ele cria um objeto Canvas e o passa ao método onDraw() do View. Depois, o View usa esse Canvas para desenhar o seu conteúdo.