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

SCELTI DA NOI PER TE