横向模式时,不同设备上的屏幕方向不同

时间:2016-02-10 12:24:49

标签: android android-orientation

我正在使用

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

我的活动,我正在尝试使用OrientationEventListener来查找设备的方向。在某些设备上,我的横向显示值 270 ,其他设备显示 0 周围的值。在放置主页按钮的每台设备上,方向值显示 0 。我希望在横向模式下保持所有设备时具有相同的值。是否有一个标志可以显示哪个设备显示270或0作为默认方向的横向模式。

这是我的OrientationEventListener

    mOrientationListener = new OrientationEventListener(this,
            SensorManager.SENSOR_DELAY_NORMAL) {

        @Override
        public void onOrientationChanged(int orientation) {

            Log.v("Orientation changed to ", String.valueOf(orientation));

        }
    };

有没有可以帮助解决问题的技巧?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

使用此代码,我将获得默认的显示旋转:

int rotation = getWindowManager().getDefaultDisplay().getRotation();

onOrientationChanged方法的正文中,我可以做到这一点:

            if (rotation == 0) {
                if (orientation  >= 90 && orientation <= 270) {

                } 
            } else if (rotation == 1) {
                if (orientation < 180 && orientation > 0 ) {

                }
            }

仅当我的设备未处于正确的横向位置时,才会输入if。如果我的设备处于90+角度,我可以给用户留言。