Как узнавать об изменении ориентации экрана android
Нужно узнавать именно об изменении и если она была изменена выполнять метод. Пытался гуглить, но нашел лишь вариант для узнавания текущей ориентации, что не подходит, кстати это мне помогло Ориентация экрана и AsynTask Android и я тоже использую AsyncTask, но теперь у меня не переключается на landscape версию xml активности.
Ответы (1 шт):
Есть несколько вариантов:
Использовать OrientationEventListener, которая имеет метод onOrientationChanged().
Используйте изменение конфига:
В вашем манифесте:
<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;
}
- Как добавил Circassian есть еще такой вариант:
Текущая конфигурация, используемая для определения того, какие ресурсы получить, доступна из объекта Configuration:
getResources().getConfiguration().orientation;
Вы можете проверить ориентацию, посмотрев на ее значение:
int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
// Горизонтальная
} else {
// Портретная
}