Canvas Android è l’API grafica 2D che ti permette di disegnare forme, testo e immagini direttamente su una Bitmap all’interno delle tue app. In questa guida pratica vedrai come funziona passo dopo passo, usando Java e Android Studio per creare un esempio completo e facilmente riutilizzabile. Imparerai i concetti chiave per controllare superficie di disegno, colori e stile, così da realizzare interfacce e componenti grafici personalizzati. Continua a leggere per scoprire come sfruttare al meglio Canvas Android nei tuoi progetti.
Android Canvas: Disegnare Grafica 2D su Bitmap
Scopri come usare Android Canvas per creare grafica 2D su Bitmap: impara a disegnare forme, testo e percorsi nelle tue app Android.
Cosa imparerai:
- Cos’è la classe Canvas e come funziona con Bitmap e Paint
- Come creare un progetto Android con Canvas in Java
- Come disegnare cerchi, rettangoli, testo e Path
- Come visualizzare la grafica in una ImageView
La classe Android Canvas è l’API di base per disegno 2D su una Bitmap. Offre metodi come drawCircle(), drawRect() e drawText(), che usi insieme a Paint per controllare colori e stile. In pratica, il Canvas è una superficie di disegno in memoria: ci tracci forme e testo e poi mostri il risultato a schermo. Questa combinazione Canvas + Bitmap è molto flessibile per creare grafica personalizzata, overlay, grafici e semplici giochi 2D.
Cos’è Android Canvas e la grafica 2D
Canvas = superficie di disegno | Bitmap = memoria immagine | Paint = pennello/stile
In Android, la classe Canvas rappresenta una superficie su cui puoi tracciare forme, linee, testo e immagini. Di solito colleghi il Canvas a una Bitmap: in questo modo disegni in memoria e poi mostri il risultato in una ImageView o in una View personalizzata. L’oggetto Paint definisce colore, spessore, riempimento e altre proprietà grafiche usate in tutte le chiamate di disegno.
Struttura del progetto di esempio
Nel progetto di esempio usi due file principali: il layout activity_main.xml e la classe MainActivity.java.
activity_main.xml
Il layout è minimale: contiene una sola ImageView centrata, che mostrerà la Bitmap creata via codice.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/img" />
</LinearLayout>
MainActivity.java
La logica principale è in MainActivity.java. Qui crei la Bitmap, inizializzi il Canvas collegato e usi Paint per disegnare tutti gli elementi grafici.
package com.example.canvas.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.canvas.R;
import android.widget.*;
import android.graphics.*;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView img = findViewById(R.id.img);
Bitmap bm = Bitmap.createBitmap(600, 600, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
canvas.drawColor(Color.MAGENTA);
Paint paint = new Paint();
paint.setColor(Color.YELLOW);
canvas.drawCircle(300, 300, 200, paint);
paint.setColor(Color.BLACK);
canvas.drawCircle(300, 300, 100, paint);
paint.setColor(Color.BLACK);
canvas.drawRect(0, 60, 250, 0, paint);
paint.setColor(Color.WHITE);
paint.setTextSize(30);
canvas.drawText("apptutorial.link", 30, 30, paint);
canvas.drawLine(245, 40, 20, 40, paint);
Point point_1 = new Point(300, 250);
Point point_2 = new Point(250, 350);
Point point_3 = new Point(350, 350);
Path path = new Path();
path.moveTo(point_1.x, point_1.y);
path.lineTo(point_2.x, point_2.y);
path.lineTo(point_3.x, point_3.y);
path.close();
paint.setColor(Color.WHITE);
canvas.drawPath(path, paint);
img.setImageBitmap(bm);
}
}
Grafica 2D con Android Canvas: esempio
In questo esempio il Canvas riempie la Bitmap con uno sfondo magenta. Al centro disegna un grande cerchio giallo e, sopra, un secondo cerchio nero più piccolo. In alto compaiono un rettangolo nero, il testo bianco "apptutorial.link" e una linea bianca che lo sottolinea. Infine, con un oggetto Path, viene creato un triangolo bianco sopra il cerchio centrale. Insieme, questi elementi mostrano come combinare forme semplici per ottenere una grafica 2D personalizzata su Android.

Conclusioni su Android Canvas e grafica 2D
In questo tutorial hai visto come usare questa classe per disegnare su una Bitmap con l’aiuto di Paint, creando una semplice scena grafica 2D.
Prossimi passi:
- Esplora
drawBitmap()per disegnare immagini su Canvas - Usa
drawArc()edrawOval()per forme avanzate - Crea una
Viewpersonalizzata cononDraw()per animazioni - Approfondisci le guide avanzate su apptutorial.link
- OpenGL ES Android: grafica 3D con Java
Da qui puoi esplorare altre API come drawBitmap(), drawArc(), drawOval() o il disegno su View personalizzate, per creare interfacce e animazioni più complesse. Per approfondire, consulta le altre guide su Canvas nella sezione grafica di apptutorial.link, dove trovi esempi più avanzati e casi d’uso pratici.