Подтвердить что ты не робот

Запускать приложение только в ландшафтном режиме?

Я хочу запустить образец приложения Hello World только в ландшафтном режиме на моем устройстве.

Если устройство изменилось на портрет, я бы хотел поднять один тостер. Например, "пожалуйста, перейдите в альбомный режим, чтобы запустить приложение".

Как мне это сделать?

4b9b3361

Ответ 1

Вы можете пойти программно, как показано ниже:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

или также в файле манифеста, который вы можете здесь указать как

<activity android:name=".YourActivity"  android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation"/>

Ответ 2

добавьте это в свой тег активности в файл манифеста:

android:screenOrientation="landscape"

Он установит вашу ориентацию в альбомном режиме, и вам не нужно будет показывать пользователю тост.

Ответ 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();
}