3

大画面または特大画面サイズのどちらの向きでもきれいに見えるアプリがありますが、電話では縦向きに制限する必要があります。マニフェストでアクティビティの方向を制限できることは知っていますが、条件付きで制限する方法はありますか? または、サポートされている方向を選択するために、アクティビティ自体に設定できるプロパティがありますか?

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 に答える