Android: перемещение формы / изображения со значениями от акселерометра - PullRequest
0 голосов
/ 14 января 2011

Мне удалось получить значения акселерометров (x, y, z). Есть ли простой способ сделать круг с этими значениями? Я также хотел бы остановиться на краях экрана. Спасибо!

1 Ответ

0 голосов
/ 21 января 2011

Я думаю, вы можете сделать что-то подобное ( примечание: частично псевдокод):

public void onSensorChanged (int sensor, float[] values) {
    //adjust someNumber to desired speed
    //values[1] can be -180 to 180
    float xChange = someNumber * values[1];
    //values[2] can be -90 to 90
    float yChange = someNumber * 2 * values[2];

    //only move object if it will stay within the bounds
    if (object.xPos + xChange > 0 && object.xPos + xChange < xBorder) {
        object.xPos += xChange;
    }
    if (object.yPos + yChange > 0 && object.yPos + yChange < yBorder) {
        object.yPos += yChange;
    }
    //force a repaint of your surface here
}

Где:

  • onSensorChanged - это метод, который вызывается при каждом перемещении акселерометра ... Я не уверен, используете ли вы SensorManager , но он кажется удобным для вашего сценария.Обратите внимание, что вы должны реализовать этот метод самостоятельно.
  • object - это круг, который вы хотите переместить.
  • xBorder и yBorder - максимальные границы для движения объекта.Предполагается, что минимальные границы равны 0 и 0, хотя вы можете использовать все, что захотите.
...