android:使用加速度计的值移动形状/图像

时间:2011-01-14 10:44:41

标签: android accelerometer

我设法得出加速度计值(x,y,z)。是否有一种简单的方法可以使圆圈与这些值一起移动?我也希望它停在屏幕的边缘。谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你可以做这样的事情(注意:部分伪代码):

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是您要移动的圈子。
  • xBorderyBorder是对象移动的最大边界。尽管你可以使用你喜欢的任何东西,但最小边界假定为0和0。