Запускать приложение только в ландшафтном режиме?
Я хочу запустить образец приложения Hello World только в ландшафтном режиме на моем устройстве.
Если устройство изменилось на портрет, я бы хотел поднять один тостер. Например, "пожалуйста, перейдите в альбомный режим, чтобы запустить приложение".
Как мне это сделать?
Ответы
Ответ 1
Вы можете пойти программно, как показано ниже:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
или также в файле манифеста, который вы можете здесь указать как
<activity android:name=".YourActivity" android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation"/>
Ответ 2
добавьте это в свой тег активности в файл манифеста:
android:screenOrientation="landscape"
Он установит вашу ориентацию в альбомном режиме, и вам не нужно будет показывать пользователю тост.
Ответ 3
в вашем манифесте (xml)
<activity android:name=".ActivityName" android:screenOrientation="landscape">
</activity>
см. также Возможно ли, чтобы проверка была вызвана onCreate из-за изменения ориентации?
Ответ 4
Вы можете использовать configChanges
-attribute для Activity, для которого вы хотите поймать изменение ориентации экрана.
После этого onConfigurationChanged()
-method в вашей деятельности будет вызываться при изменении ориентации.
Чтобы проверить, какая ориентация отображается в данный момент, проверьте это более старое сообщение: Проверить ориентацию на телефоне Android
После этого вы можете показать свое сообщение или сделать все, что захотите (конечно, вы также можете установить его только в ландшафте).
Ответ 5
Вы можете попробовать что-то вроде этого
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Log.v("log_tag", "display width is "+ width);
Log.v("log_tag", "display height is "+ height);
if(width<height){
Toast.makeText(getApplicationContext(),"Device is in portrait mode",Toast.LENGTH_LONG ).show();
} else {
Toast.makeText(getApplicationContext(),"Device is in landscape mode",Toast.LENGTH_LONG ).show();
}