2015-10-14 3 views
0

Я использовал этот Accelerometer руководство для движения экрана Android. Я запутался во всех вычислениях и значении значений x, y, z. Что означает z = -. 60? или y = 8,4253?Как использовать акселерометр Android

В конечном счете, я хотел бы знать, как получить значение, чтобы увидеть, сколько они перемещают экран слева направо или по оси X, потому что я хочу сделать растровое изображение/изображение на экране двигаться влево если экран наклонен/перемещен влево, и он перемещается вправо, если экран наклонен вправо.

Я не знаю алгоритма для этого и не знаю, что означают значения, поэтому любая обратная связь или рекомендации по этой информации были бы наиболее полезными.

+0

Этих значения представляют собой ускорение телефона на этих осях в м/с^2. На этой странице есть хорошая иллюстрация: https://cdn.tutsplus.com/mobile/uploads/2014/01/xyz.jpg – Zarwan

+0

Итак, если они наклонят телефон вправо, это приведет к положительному ускорению в x и отрицательном в y? – user3483163

+0

Показания обычно довольно шумные. Я рекомендую вам немного поэкспериментировать. Выведите 3 показания датчика и передвиньте телефон и посмотрите, как он изменяется. – Zarwan

ответ

1

Ваша активность может реализовать SensorEventListener, переопределить onSensorChanged(SensorEvent event) вроде этого:

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"); 
    } 
} 

Более подробной информации см моего полного поста в: http://www.devexchanges.info/2015/05/detecting-tilt-device-by-using-sensor.html

+0

Красиво работает. – user3483163

Смежные вопросы