getRotation值不对

360 阅读1分钟

现象

通过display.getRotation() 获取的值不对。

解决办法

通过给rotation增加一个校准来实现。

        Display display = wm.getDefaultDisplay();
        int rotation = display.getRotation();
        // 对rotation进行校准
        int screenRotation = SystemProperties.getInt("persist.screen.hwrotation", 0);
        if (rotation >= screenRotation) {
            rotation = rotation - screenRotation;
        } else {
            rotation = 4 - screenRotation + rotation;
        }