我对“指南针”有些问题。
我想在屏幕上显示我使用相机拍摄的方向。为此,我有一个
现在我尝试使用传感器获取方向,但出了些问题。当我启动应用程序时,它显示一些奇怪的数据,但是在摇晃手机后它会显示正确的数据?!
也许你可以帮助我。这是我的onSensorChanged方法:
我正在获取两个传感器(磁力计和加速度计)的数据,然后创建旋转矩阵(如文档所示)。如果是横屏,我将 X -> X 轴和 Y -> Z 轴放入旋转矩阵中。
该活动的屏幕方向也是横屏。
但是我真的不明白为什么只有在摇动手机后才能获得正确的数据?!
我想在屏幕上显示我使用相机拍摄的方向。为此,我有一个
CameraView
和一个运行在横屏模式下的Activity
。现在我尝试使用传感器获取方向,但出了些问题。当我启动应用程序时,它显示一些奇怪的数据,但是在摇晃手机后它会显示正确的数据?!
也许你可以帮助我。这是我的onSensorChanged方法:
public void onSensorChanged(SensorEvent event) {
int type = event.sensor.getType();
if (type == Sensor.TYPE_ACCELEROMETER) {
mGrav = event.values.clone();
} else if (type == Sensor.TYPE_MAGNETIC_FIELD) {
mMag = event.values.clone();
}
if (SensorManager.getRotationMatrix(mRinn, null, mGrav, mMag)) {
SensorManager.remapCoordinateSystem(mRinn, SensorManager.AXIS_X, SensorManager.AXIS_Z, mRout);
SensorManager.getOrientation(mRout, mOrient);
//Logger.d("direction?: " + Math.toDegrees(mOrient[0]));
setOrientationText(Math.toDegrees(mOrient[0]));
}
}
我正在获取两个传感器(磁力计和加速度计)的数据,然后创建旋转矩阵(如文档所示)。如果是横屏,我将 X -> X 轴和 Y -> Z 轴放入旋转矩阵中。
该活动的屏幕方向也是横屏。
但是我真的不明白为什么只有在摇动手机后才能获得正确的数据?!