Android屏幕-旋转角度

Android屏幕-旋转角度,android,android-emulator,screen-orientation,Android,Android Emulator,Screen Orientation,这个问题和android模拟器屏幕的旋转有关 我正在使用DefaultDisplay.getRotation()获取仿真器上的旋转角度。它只返回0和90。甚至在反向肖像和反向风景中。未在活动XML文件中设置任何特定的屏幕方向。我是这方面的初学者,所以我可能在这里遗漏了一些东西,需要一些帮助来理解这可能是什么 谢谢。首先getRotation方法在emulator屏幕中不起作用。因为根据你的线程,你可以看到你只得到了两个角度,即“0”和“90”,因为横向和potrait模式。所以只要在任何真实的设

这个问题和android模拟器屏幕的旋转有关

我正在使用
DefaultDisplay.getRotation()
获取仿真器上的旋转角度。它只返回0和90。甚至在反向肖像和反向风景中。未在活动XML文件中设置任何特定的屏幕方向。我是这方面的初学者,所以我可能在这里遗漏了一些东西,需要一些帮助来理解这可能是什么


谢谢。

首先
getRotation
方法在emulator屏幕中不起作用。因为根据你的线程,你可以看到你只得到了两个角度,即“0”和“90”,因为横向potrait模式。所以只要在任何真实的设备上进行测试。

试试这个

int rotation = getWindowManager().getDefaultDisplay().getRotation();
        Log.v("rotation--", ""+rotation);

        switch (rotation) {

        case 0:
            Toast.makeText(getBaseContext(), "Angle 0", Toast.LENGTH_SHORT).show();
            break;
        case 1:
            Toast.makeText(getBaseContext(), "Angle 90", Toast.LENGTH_SHORT).show();
            break;
        case 2:
            Toast.makeText(getBaseContext(), "Angle 180", Toast.LENGTH_SHORT).show();
            break;
        case 3:
            Toast.makeText(getBaseContext(), "Angle 270", Toast.LENGTH_SHORT).show();
            break;
        }

如果您只想纵向/反向纵向和横向/反向横向,您可以使用

            if (Utils.getDeviceDefaultOrientation(localActivity) == Configuration.ORIENTATION_LANDSCAPE)
            {
                if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_0)
                    //Landscape Mode
                else if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_90)
                    //Portrait Mode
                else if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_180)
                    //Reverse Landscape
                else if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_270)
                    //Reverse Portrait
            }
            else
            {
                if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_0)
                    //Portrait Mode
                else if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_90)
                    //Landscape Mode
                else if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_180)
                    //Reverse Portrait Mode
                else if (getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_270)
                    //Reverse Landscape Mode
            }
我们必须检查
getDeviceDefaultOrientation
,因为对于平板电脑,默认设备方向是横向的,在这种情况下,它将返回
getRotation()
0