Programmare su Android in modalità grafica

31 Dicembre 20085 commenti

Ciao a tutti, È il mio primo post e vorrei cominciare scrivendo un articolo sull'accesso alla modalita' grafica con Android. Nel post di Gonçalo Margalho avete visto come si imposta un progetto ed i primi elementi di stesura del codice. Siete quindi arrivati all'esecuzione del vostro primo programma "Hello, Android".  In questo post cerchero' di spiegare brevemente come accedere in maniera semplice alla modalita' grafica, disegnando anche elementi geometrici sullo schermo. Scriveremo quindi una versione grafica di "Hello, Android". Il codice che segue si compone di 2 classi inserite in un singolo sorgente. Cominciamo con la classe madre: [java]package com.android.HelloAndroid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Color; import android.content.Context; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ private View2 _view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); _view = new View2(this); setContentView(_view); } }[/java]



All’inizio del codice si possono vedere i vari “import”, necessari per poter usare le varie classi di oggetti ed i relativi metodi che saranno necessari:

  1. import android.app.Activity“: permette di creare la la prima finestra dell’applicazione,  nella quale si potranno disegnare i vari contenuti;
  2. import android.os.Bundle“: permette la gestione delle stringhe e dei tipi di dati;
  3. import android.view.View“: permette la gestione e la manipolazione dello schermo mediante la creazione di UI e gestendone gli eventi;
  4. import android.graphics.Canvas“: permette la creazione di elementi grafici che possono poi essere stampati a schermo;
  5. import android.graphics.Paint“: permette di definire  gli stili ed i colori desiderati per il disegno degli elementi grafici e testuali;
  6. import android.graphics.Color“: permette la gestione e la conversione dei codici colori;
  7. import android.content.Context“: permette la gestione del contesto relativo all’applicazione e l’interfacciamento dei vari componenti.
  8. Il costruttore “onCreate” inizializza l'”Activity”, crea l’ oggetto “_view” di tipo “View2” (in verita’ “View2” è una classe che estende “View”) e gli passa il contesto dell’applicazione corrente “this” (cioè se stessa);
  9. Viene instanziato l’oggetto “_view”, che crea l’oggetto “_paint” (instanza della classe “Paint”);
  10. La chiamata  “setContentView(_view);” manda in esecuzione e visualizza i risultati dell’elaborazione effettuata dall’oggetto “_view”, instanza della classe View2 (che estende View). Qui di seguito potete vedere il codice della seconda classe;

[java]class View2 extends View {
private Paint _paint;
private String _string = “Hello, Android, in modalita’ grafica”;

public View2(Context context) {

super(context);
_paint = new Paint();

}

@Override
protected void onDraw(Canvas _canvas) {

_canvas.drawColor(Color.GREEN);
_paint.setColor(Color.YELLOW);
_canvas.drawCircle(160, 210, 159, _paint);
_paint.setColor(Color.BLACK);
_paint.setTextSize(16);
_paint.setAntiAlias(true);
_canvas.drawText(_string, 40, 213, _paint);

}
}[/java]

  1. A questo punto viene eseguito l’Override del metodo “onDraw” della classe “View2” (che estende la classe View) da parte dell’oggetto “_view” che crea il “Canvas” (lo sfondo) dove andremo a disegnare e vengono eseguite le istruzioni che serviranno al disegno dei vari elementi grafici e testuali a video. In particolare:
– “_canvas.drawColor(Color.GREEN);” colora lo sfondo su cui disegnare in verde;

– “_paint.setColor(Color.YELLOW);” setta il colore giallo con il quale andremo a scrivere e disegnare sul “Canvas”;

-” _canvas.drawCircle(160, 210, 159, _paint);” disegna un cerchio pieno con il colore appena definito da “_paint”;

– “_paint.setColor(Color.BLACK);” setta il colore nero con il quale andremo a scrivere e disegnare sul “Canvas”;

– “_paint.setTextSize(16);” setta la dimensione del font di caratteri da utlizzare per scrivere sullo schermo;

– “_paint.setAntiAlias(true);” attiva l’antialiasing sui testi che verranno stampanti (ne smussa gli spigoli, rendendoli piu’ dolci);

– “_canvas.drawText(_string, 40, 213, _paint);” infine stampa a video il testo desiderato contenuto nella stringa “_string” definita all’inizio della classe “View2”.

Il risultato finale delle operazione e’ il seguente:

result

Ciao ed alla prossima!

P.S. Il Sorgente lo potete scaricare qui: helloandroid.zip

Loading...
WP Facebook Auto Publish Powered By : XYZScripts.com