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

Android: послушайте изменение ориентации?

Как мне слушать изменения ориентации в Android? и делать определенные вещи, когда пользователь переключился на пейзаж?

4b9b3361

Ответ 1

У вас есть несколько вариантов:

В своем манифесте укажите:

<activity android:name=".HelloAndroid"
    android:label="@string/app_name"
    android:configChanges="orientation">

И в своей деятельности переопределите onConfigurationChanged:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    int newOrientation = newConfig.orientation;

    if (newOrientation == Configuration.ORIENTATION_LANDSCAPE) {
      // Do certain things when the user has switched to landscape.    
    }   
}

Вот хороший учебник об этом.

Ответ 2

В своей деятельности вы можете переопределить этот метод, чтобы прослушать Orientation Change и реализовать свой собственный код.

public void onConfigurationChanged (Configuration newConfig)

Класс Configuration имеет константу int ORIENTATION_LANDSCAPE и ORIENTATION_PORTRAIT, там вы можете проверить newConfig следующим образом:

super.onConfigurationChanged(newConfig);

int orientation=newConfig.orientation;

switch(orientation) {

case Configuration.ORIENTATION_LANDSCAPE:

//to do something
 break;

case Configuration.ORIENTATION_PORTRAIT:

//to do something
 break;

}

Ответ 3

Как и для Android 3.2, вам также нужно добавить " screenSize" в androidmanifest для конкретной активности

Итак, ваше объявление активности в xml станет

<activity android:name=".ExampleActivity"
    android:label="@string/app_name"
    android:configChanges="orientation|screenSize">

Ответ 4

Как насчет событий ориентации, перевернутой из пейзажа, чтобы изменить пейзаж или портрет, чтобы изменить портрет?