这是我的代码:
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是垂直线的顶部和底部。我试图这样做,如果我将设备向右移动,线条会向左移动,看起来它仍处于相同的位置,就像在物理世界中一样(想想增强现实)。 / p>
我正在使用SensorEvent提供的值来做一些算术来移动中心线。唯一的问题是,当我将建议移动到类似5的时候,加速度计值会上升,但是当我停止移动时,然后减少到4到3到2到1到0。所以,线条只是反弹到一边然后返回原来的中心。我正在寻找摆脱这种“弹跳”的方法,让这条线保持在新的位置。有什么想法吗?