我有一些getOrientation的麻煩。我在橫向模式下運行我的應用程序,我遇到了一個軸的問題。有一個在代碼更多的解釋,一些圖片:Android getOrientation問題 - 沿着軸的鏡像值
valuesMagnet = new float[3];
valuesAccel = new float[3];
valuesOrientation = new float[3];
rotationMatrix = new float[9];
rotationMatrixTemp= new float[9];
....
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
System.arraycopy(event.values, 0, valuesAccel, 0, 3);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
System.arraycopy(event.values, 0, valuesMagnet, 0, 3);
break;
}
if (SensorManager.getRotationMatrix(rotationMatrixTemp, null, valuesAccel, valuesMagnet)) {
//SensorManager.remapCoordinateSystem(rotationMatrixTemp, SensorManager.AXIS_X, SensorManager.AXIS_Z, rotationMatrix);
SensorManager.getOrientation(rotationMatrix, valuesOrientation);
for (int i = 0; i < valuesOrientation.length; i++) {
valuesOrientation[i] /= Math.PI;
valuesOrientation[i] *= 100;
valuesOrientation[i] = (int)valuesOrientation[i];
valuesOrientation[i] /= 100;
}
updateOrientationBuffer(valuesOrientation);
quadcopter.onEvent(new Event(Event.Codes.ORIENTATION_CHANGED, calculateSmoothedOrientation()));
}
else {
Log.d("App", "Matrix rotate error");
}
}
我想orientation[1]
軸,而180度旋轉手機給-1到1之間的值的全光譜。另外,目標設備不像陀螺儀。
你可以發佈更多的代碼,看看你如何生成valuesAccel和valuesMagnet嗎? –
@GilMoshayof,我編輯了我的帖子。 –
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/hardware/SensorEvent.java http://grepcode.com/ file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/hardware/SensorListener.java?av = f – pvllnspk