Android我想获取设备的旋转角度
例如,我启动了应用程序,然后将设备并排旋转90度。我想为设备上的每个平面检测此事件。您可以获得如下屏幕方向(例如在onResume()方法中):Android我想获取设备的旋转角度,android,orientation,Android,Orientation,例如,我启动了应用程序,然后将设备并排旋转90度。我想为设备上的每个平面检测此事件。您可以获得如下屏幕方向(例如在onResume()方法中): private static final int ORIENTATION_0 = 0; private static final int ORIENTATION_90 = 3; private static final int ORIENTATION_270 = 1; Display display = ((WindowManager)
private static final int ORIENTATION_0 = 0;
private static final int ORIENTATION_90 = 3;
private static final int ORIENTATION_270 = 1;
Display display = ((WindowManager)
getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int screenOrientation = display.getRotation();
switch (screenOrientation)
{
default:
case ORIENTATION_0: // Portrait
// do smth.
break;
case ORIENTATION_90: // Landscape right
// do smth.
break;
case ORIENTATION_270: // Landscape left
// do smth.
break;
}
使用传感器管理器和类型\陀螺仪/类型\旋转\矢量/类型\方向/获取这些值
查看详细信息。我认为您必须使用传感器管理器来计算每个点的x、y、z。并用方程求两点之间的夹角。考虑你的起始点(0,0,0); 您可以对平面使用方向EventListener
OrientationEventListener mOrientationListener = new OrientationEventListener(
getApplicationContext()) {
@Override
public void onOrientationChanged(int orientation) {
}
};
if (mOrientationListener.canDetectOrientation()) {
mOrientationListener.enable();
}
谢谢,但我想得到电话的X,Y,Z平面。这是Z平面的解决方案。它不包括其他平面。如果要检查所有3个平面,则可以注册SensorEventListener并在其“onSensorChanged(SensorEvent)”方法中检索值。有关更多详细信息,请查看此处:此处发布解决方案而非链接,此链接可能在将来被破坏,例如,下面的答案请添加一个与其他答案类似的适当解决方案。请查看此链接