我有一个要求,当传感器值发生变化时,需要相应地显示一些数据。
目前我正在做的是,如果当前方位角值和之前的方位角值有 10 度的变化,则执行一些操作。
问题是,每改变 10 度(正如我在代码中提到的),就会执行操作。我不希望每改变 10 度就执行此操作。每当设备停止旋转时,都要考虑方位角值并执行操作。我也用过计数器。但是没有用。这是要了我的命。
这是我的代码,
public void onSensorChanged(SensorEvent paramAnonymousSensorEvent) {
CameraSearch.this.azimuth = paramAnonymousSensorEvent.values[0];
CountDownTimer myCountDown = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
// update the UI with the new count
}
public void onFinish() {
Log.d("","Counter finished");
if (Math.abs(CameraSearch.this.azimuth - previousAzimuth) >= 10) {
Log.d("", "Azimuth: " + CameraSearch.this.azimuth
+ "PreviousAzimuth: " + previousAzimuth);
CameraSearch.this.findScreenOrientation();
previousAzimuth = CameraSearch.this.azimuth;
}
}
};
// start the countDown
myCountDown.start();
}
};
请建议我解决方案。当用户停止旋转设备时,将采用当前方位角值并执行操作。请帮帮我!!
提前致谢!!