3

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

4

1 回答 1

9

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

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;
}
于 2012-05-08T02:57:57.443 回答