2015-10-14 2 views
0

J'ai utilisé ce guide Accelerometer pour le mouvement de l'écran android. Je suis confus au sujet de tous les calculs et de la signification des valeurs x, y, z. Que signifie z = - 60? ou a y = 8,4253? En fin de compte, je voudrais savoir comment obtenir une valeur pour voir à quel point ils déplacent l'écran de gauche à droite ou dans l'axe des X parce que je veux faire un bitmap/image sur l'écran aller à gauche si l'écran est incliné/déplacé vers la gauche et qu'il se déplace vers la droite si l'écran est incliné vers la droite. Je ne connais pas l'algorithme pour cela et je ne sais pas ce que les valeurs signifient donc tout retour ou conseil sur cette information serait le plus bénéfique.Comment utiliser l'accéléromètre Android

+0

Ces valeurs représentent l'accélération du téléphone sur ces axes en m/s^2, Il y a une belle illustration sur cette page: https://cdn.tutsplus.com/mobile/uploads/2014/01/xyz.jpg – Zarwan

+0

Donc, si elles inclinent le téléphone vers la droite, cela provoquera une accélération positive dans le x et un négatif dans le y? – user3483163

+0

Les lectures sont généralement assez bruyant. Je vous recommande de l'expérimenter un peu. Sortie les 3 lectures du capteur et déplacez le téléphone et voir comment cela change. – Zarwan

Répondre

1

Votre activité peut mettre en œuvre SensorEventListener, passer outre onSensorChanged(SensorEvent event) comme ceci:

public void onSensorChanged(SensorEvent event) { 
    float x = event.values[0]; 
    float y = event.values[1]; 
    if (Math.abs(x) > Math.abs(y)) { 
     if (x < 0) { 
      image.setImageResource(R.drawable.right); 
      textView.setText("You tilt the device right"); 
     } 
     if (x > 0) { 
      image.setImageResource(R.drawable.left); 
      textView.setText("You tilt the device left"); 
     } 
    } else { 
     if (y < 0) { 
      image.setImageResource(R.drawable.up); 
      textView.setText("You tilt the device up"); 
     } 
     if (y > 0) { 
      image.setImageResource(R.drawable.down); 
      textView.setText("You tilt the device down"); 
     } 
    } 
    if (x > (-2) && x < (2) && y > (-2) && y < (2)) { 
     image.setImageResource(R.drawable.center); 
     textView.setText("Not tilt device"); 
    } 
} 

Plus de détails, voir mon article complet à: http://www.devexchanges.info/2015/05/detecting-tilt-device-by-using-sensor.html

+0

Magnifiquement travaillé. – user3483163