Для этого, я думаю, вам нужно будет свернуть две вещи в одном.
- Во-первых, получить размер экрана устройства
- а затем, основываясь на результате включения или отключения ориентации.
Для первой части:
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
switch(screenSize) {
case Configuration.SCREENLAYOUT_SIZE_LARGE:
Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_SMALL:
Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}
Кредит: https://stackoverflow.com/a/11252278/450534 (Решение было легко доступно на SO)
И, наконец, на основе результата указанного выше кода, либо из них:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ИЛИ
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
+1 для «Решение было легко доступно на SO» – Pragnani
@ Прагани: Должна быть ссуда, когда это произойдет. Не могу утверждать, что не мое ;-) –
Я ценю, что решение было легко доступно в SO, но я не мог найти его по названию вопроса, так как на этом этапе я не знал, что делать это программно было единственным способом. Я надеялся, что вокруг будет какая-то конфигурация. Спасибо, в любом случае. – Zyga