2

这是我的代码:

      float x; 
      @Override
      public void onSensorChanged(SensorEvent event) {

    if(event.values[0] > .2){
        x = -1*(Math.round(event.values[0]));           
        centerx = centerx +(x*10);
    }

    else if(event.values[0] < -.2){
        x =  -1*Math.round(event.values[0]);
        centerx = centerx +(x*10);
    }
    mCustomDrawableView.invalidate();



    y = Math.round(event.values[1]);

    if(event.values[2] > .4){
        z = event.values[2];    
    }   

}

我正在使用加速度计来回移动垂直线。centerx 是垂直线的顶部和底部点。我正在努力做到这一点,所以如果我将设备向右移动,这条线将向左移动,看起来它仍然在同一个位置,就好像它在物理世界中一样(想想增强现实)。

我正在使用 SensorEvent 给出的值来做一些算术来移动中心线。唯一的问题是,当我将建议移动到 5 之类的值时,加速度计值会上升,但是当我停止移动时,加速度计值会下降到 4 到 3 到 2 到 1 到 0。所以,这条线只是弹到一边,然后回到原来的中心。我正在寻找一种方法来摆脱这种“反弹”,并让生产线保持在新的位置。有任何想法吗?

4

0 回答 0