Sobes.tech
Junior

¿Qué es Canvas en Android?

sobes.tech AI

Respuesta de la IA

Canvas en Android representa una superficie para dibujar. Es un objeto que proporciona métodos para dibujar primitivas gráficas (puntos, líneas, rectángulos, círculos, texto, imágenes) en un mapa de bits (Bitmap) u otra superficie.

Conceptos principales:

  • Dibujo: Canvas proporciona una API para realizar operaciones de dibujo, como drawPoint(), drawLine(), drawRect(), drawCircle(), drawText(), drawBitmap().
  • Sistema de coordenadas: Utiliza un sistema de coordenadas bidimensional, donde el punto (0,0) está en la esquina superior izquierda.
  • Estado: Canvas tiene un estado que incluye transformaciones actuales (desplazamiento, escalado, rotación) y la región de recorte (clip region), que se pueden guardar y restaurar (save() y restore()).
  • Paint: Los objetos Paint se usan para definir estilos de dibujo, como color, grosor de línea, sombreado, fuentes, etc. Canvas usa el Paint actual para cada operación de dibujo.

Ejemplo de uso en una View personalizada:

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

    // Crear objeto Paint
    Paint paint = new Paint();
    paint.setColor(Color.RED); // Establecer color

    // Dibujar rectángulo
    canvas.drawRect(10, 10, 100, 100, paint);

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

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

Canvas está estrechamente relacionado con los objetos View. Cuando el sistema dibuja un View, crea un objeto Canvas y lo pasa al método onDraw() del View. Luego, el View usa este Canvas para dibujar su contenido.