【问题标题】:Android: Restrict activity orientation based on screen sizeAndroid:根据屏幕大小限制活动方向
【发布时间】:2012-05-08 01:57:03
【问题描述】:

我有一个应用在大屏幕或超大屏幕上的任何方向看起来都不错,但在手机上应该限制为纵向。我知道您可以在清单中限制 Activity 的方向,但是有没有办法有条件地这样做?或者我可以在活动本身中设置某种属性来选择支持哪些方向?

【问题讨论】:

    标签: android orientation screen-size


    【解决方案1】:

    这是我在应用中使用的解决方案:

    public void onCreate(Bundle savedState) {
        //...
    
        if(isScreenLarge()) {
            // width > height, better to use Landscape
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    }
    
    public boolean isScreenLarge() {
        final int screenSize = getResources().getConfiguration().screenLayout
                & Configuration.SCREENLAYOUT_SIZE_MASK;
        return screenSize == Configuration.SCREENLAYOUT_SIZE_LARGE
                || screenSize == Configuration.SCREENLAYOUT_SIZE_XLARGE;
    }
    

    【讨论】:

    • 非常感谢。我所做的唯一更改是使用SCREEN_ORIENTATION_UNSPECIFIED 而不是SCREEN_ORIENTATION_PORTRAIT,因为我希望平板电脑同时支持横向和纵向。
    • 注意onCreate()setRequestedOrientation()之后的活动轮换情况下会被调用两次
    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 2020-09-29
    • 1970-01-01
    • 2015-07-16
    • 2020-08-31
    • 2016-05-22
    相关资源
    最近更新 更多