我已经构建了一个工作正常的指南针应用程序,但它只有一个问题,它是动画,基本上我正在使用 SensorEventListener 中的 matrix.setRotate onSensorChanged 方法旋转一个 ImageView(一个 nidle 图像)。nidle 正在旋转,但速度非常快,这似乎不太好。我想要的是低速旋转图像。就像 iPhone 内置的指南针一样。需要您的专家建议。
privateSensorEventListener mySensorEventListener= newSensorEventListener() {
.
.
.
public void onSensorChanged(SensorEvent event) {
.
.
.
azimuth= (int) event.values[0];
allowRotating=true;
dialer.post(new RotateRunnable(azimuth));
.
.
.
}};
如果传感器数据发生变化,则调用 Runnable
private class RotateRunnable implementsRunnable {
private int Degrees;
public Rotate Runnable(intDegrees) {
this.Degrees= Degrees;
}
public void run() {
if(allowRotating) {
rotateDialer(Degrees);
dialer.post(this);
}
}
}
旋转图像的方法
private void rotateDialer(int Degrees) {
matrix.setRotate(360-Degrees, dialerWidth/ 2, dialerHeight/ 2);
dialer.setScaleType(ScaleType.MATRIX);
dialer.setImageMatrix(matrix);
allowRotating=false;
}