Skip to content
Android Blog Italia

Android Blog Italia

Tutto quello che devi sapere sul mondo Android e della tecnologia

Primary Menu
  • News
    • Visualizza Tutto
    • Smartphone
    • Tablet
    • Accessori
    • TUTTI GLI ARTICOLI
  • Guide
    • Visualizza Tutto
    • ProgrammazioneGuide di programmazione
  • Recensioni
    • Visualizza TuttoCategoria relativa alle recesioni dedicate a smartphone, tablet, pc e dispositivi legati al mondo della Tecnologia.
  • Applicazioni
    • Visualizza tutto
  • Giochi
    • Visualizza Tutto
  • Guide e tutorial per Android
  • Programmazione

Guida programmazione Android – Lezione 14: Accelerometro

Redazione 04/11/2013
Lezione14

Lezione14Oggi vedremo come gestire il sensore dell’accelerometro su Android, e come visualizzarne i valori.

Creiamo quindi come sempre un File->New->AndroidApplicationProject e chiamiamolo Accelerometro (si scrive con una L sola!! ).

Ci serviranno 3 view per mostrare rispettivamente il valore X, Y e Z dell’accelerometro.

Per questo scopo saranno perfette delle TextView: disponiamo quindi verticalmente nel nostro layout 3 elementi Large Text (si trovano in Form Widgets). Cambiamogli il valore di default (il campo Text a destra) se vogliamo, ma soprattutto il campo id, in modo da identificarle più facilmente in java. Per questo esempio abbiamo scelto di chiamarle TextViewX, TextViewY e TextViewZ.

layout accelerometro

A questo punto spostiamoci nel file MainActivity.java e scriviamo il seguente codice:

public class MainActivity extends Activity implements SensorEventListener{
	private SensorManager sensorManager;
	TextView text_X;
	TextView text_Y;
	TextView text_Z;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
		sensorManager.registerListener(this, sensorManager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER ),SensorManager.SENSOR_DELAY_NORMAL );
		//Collegamento con le textView del layout
		text_X=(TextView)findViewById(R.id.textViewX);
		text_Y=(TextView)findViewById(R.id.textViewY);
		text_Z=(TextView)findViewById(R.id.textViewZ);
	}

	@Override
	public void onSensorChanged(SensorEvent event) {
		if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
			//L'accelerometro ha cambiato stato
			mostraValori(event);
		}

	}	

	@Override
	public void onAccuracyChanged(Sensor sensor, int accuracy) {

	}

	private void mostraValori(SensorEvent event){
		float[] valori=event.values;//array che contiene i valori dell'accelerometro
		//modifica del valore delle textView
		text_X.setText("Valore X: "+valori[0]);
		text_Y.setText("Valore Y: "+valori[1]);
		text_Z.setText("Valore Z: "+valori[2]);

	}
}

Notiamo intanto nella dichiarazione della classe il codice implements SensorEventListener: Significa che questa classe dovrà “ascoltare” eventuali variazioni dello stato dei sensori e comportarsi di conseguenza. Come nel caso della Camera (vedi Lezione9 e Lezione10) dovremo implementare 2 metodi specifici, e cioè onSensorChanged (richiamato quando cambia il valore del sensore) e onAccuracyChanged (che a noi non serve, ma che dobbiamo comunque implementare, ma possiamo lasciarlo vuoto). Quindi quando muoveremo il nostro dispositivo verrà invocato il metodo mostraValori, nel quale estrapoliamo da event 3 valori (relativi ai campi X,Y e Z) e modifichiamo il testo delle view per mostrare lo stato del nostro accelerometro.

La nostra lezione si conclude qui: potete però utilizzarla come base per creare applicazioni più complesse integrando anche le lezioni precedenti. Potrete ad esempio decidere di far partire un suono quando il dispositivo viene inclinato, oppure far partire un animazione (ad esempio una palla che rotola per effetto della gravità) , accendere la torcia, ecc…

Puoi guardare tutte le lezioni passate consultando l’indice del corso di programmazione android

Continue Reading

Previous: Modding Samsung Galaxy Note: Android 4.3 grazie alla CyanogenMod 10.2
Next: Perchè uno sviluppatore sceglie Android

Articoli Correlati

Come disattivare il GPS dello smartphone Come funziona il GPS
  • Guide e tutorial per Android
  • News su Android, tutte le novità
  • Sticky

Come disattivare il GPS dello smartphone

12/09/2023
Top 5 motivi per cui Cammus C5 è migliore della concorrenza Top 5 motivi per acquistare Cammus C5
  • Guide e tutorial per Android
  • News su Android, tutte le novità

Top 5 motivi per cui Cammus C5 è migliore della concorrenza

11/09/2023
Come personalizzare il setup di Cammus C5 Come personalizzare il setup di Cammus C5
  • Guide e tutorial per Android
  • News su Android, tutte le novità

Come personalizzare il setup di Cammus C5

01/09/2023

Ultime News

Google Pixel 8, svelate le caratteristiche della fotocamera google-pixel-8-pro
  • News su Android, tutte le novità
  • Smartphone Android
  • Sticky

Google Pixel 8, svelate le caratteristiche della fotocamera

Redazione 26/09/2023
Il focus dei telefoni Pixel di Google è sempre stato sulla fotocamera, e sembra che ci siano...
Leggi tutto
Samsung Argentina svela per errore tutte la lineup dei Galaxy “FE” Samsung Galaxy S23 FE, Galaxy Tab S9 FE e Galaxy Buds FE

Samsung Argentina svela per errore tutte la lineup dei Galaxy “FE”

26/09/2023
Addolcite la vostra giornata con CandyKu: Il Sudoku zuccherato, versione moderna del classico intramontabile fatto con dolci e prelibatezze CandyKu: Il Sudoku zuccherato

Addolcite la vostra giornata con CandyKu: Il Sudoku zuccherato, versione moderna del classico intramontabile fatto con dolci e prelibatezze

26/09/2023
Questo è il Google Pixel 8a Google Pixel 8a leaked

Questo è il Google Pixel 8a

25/09/2023
Spotify Supremium con qualità Hi-Fi, ormai ci siamo quasi Spotify Supremium

Spotify Supremium con qualità Hi-Fi, ormai ci siamo quasi

25/09/2023
Copyright © Tutti i diritti riservati | MoreNews by AF themes.
×

Questo sito utilizza i cookie, anche di terze parti, per garantirvi una esperienza di utilizzo ottimale.
Si rinvia all'informativa estesa per ulteriori informazioni. La prosecuzione nella navigazione (click, scroll, ...) comporta l'accettazione dei cookie.

 

Ok