Home > Guide e tutorial per Android > Guida programmazione Android – Lezione 19: Random

Guida programmazione Android – Lezione 19: Random

lezione19

lezione19Oggi vedremo come utilizzare la classe Random di Java per le nostre applicazioni Android.
Può capitare che nello sviluppo di un applicazione, soprattutto se questa è un gioco, si abbia bisogno di un processo Random, cioè non determinabile a priori.
Poniamo l’esempio di voler realizzare un semplice applicazione che simuli il lancio di un dado per Android.
Creiamo un nuovo progetto di nome “dado”.
Inseriamo in drawable le immagini delle 6 facce del dado, reperibili qui.
La nostra interfaccia sarà estremamente semplice, visualizzerà solo la faccia del dado corrispondente al nostro “lancio”.
Quindi usando l’editor grafico spostiamo una qualunque delle 6 immagini (sarà quella di default) al centro del nostro RelativeLayout come in figura:

screen layout dado

Cambiamo l’id dell’ImageView  in “dado” per semplicità. Andiamo alla parte Java, apriamo MainActivity.java e scriviamo:

package com.example.dado;

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {
	Random r=new Random();
	ImageView dado;
	Vibrator vib;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		vib= (Vibrator) getSystemService(VIBRATOR_SERVICE);
		dado=(ImageView)findViewById(R.id.dado);
		dado.setOnClickListener(new View.OnClickListener(){
			@Override
			public void onClick(View v){
				int lancio=r.nextInt(6);//ritorna un numero casuale compreso fra 0 e 5
				mostraLancio(lancio+1);//si aggiunge uno per avere il lancio fra 1 e 6
				vib.vibrate(50);
			}
		});
	}

	private void mostraLancio(int lancio){
		switch(lancio){
		case 1:
			dado.setImageResource(R.drawable.uno);
			break;
		case 2:
			dado.setImageResource(R.drawable.due);
			break;
		case 3:
			dado.setImageResource(R.drawable.tre);
			break;
		case 4:
			dado.setImageResource(R.drawable.quattro);
			break;
		case 5:
			dado.setImageResource(R.drawable.cinque);
			break;
		case 6:
			dado.setImageResource(R.drawable.sei);
			break;
		}
	}

}

Come potete notare oltre agli import android abbiamo anche un import java, quello relativo alla classe Random: questo mette in risalto la stretta connessione che hanno questi 2 “linguaggi” e la possibilità quindi di utilizzare elementi java per lo sviluppo di app.
Attenzione al metodo nextInt(int n) della classe Random che restituisce un numero compreso fra 0 e n-1 (inclusi).
Il metodo mostraLancio è stato appositamente scritto per questa lezione e utilizza il costrutto switch-case del java per cambiare l’immagine mostrata.
Abbiamo inoltre aggiunto una vibrazione come feedback utente.
Puoi guardare tutte le lezioni passate consultando l’indice del corso di programmazione android