Проведя пальцем по экрану сверху вниз, мы попадаем вверху в меню с кнопками. Например: звук (изменить звук), поворот экрана (разрешаем или запрещаем поворот экрана) и т.д.
А можно ли программно нажать на кнопку "Поворот экрана", а именно: запретить поворот экрана?
Иными словами: как программно запретить поворот, а по завершении программы вернуть в положение перед запуском.
Т.е. если перед запуском был ландшафт, то он и останется им до конца работы приложения, а если был портрет, то он тоже останется до конца работы приложения?
Вариант с android:screenOrientation="portrait" в Манифесте
не предлагать.
Он не решает данную проблему!
Благодарю, заранее...
Ответ
Ответы с en-SO раз и два
Получаем два варианта: ландшафт и портрет
int orientation=this.getResources().getConfiguration().orientation;
if(orientation==Configuration.ORIENTATION_PORTRAIT){
//портрет
}
else{
//ландшафт
}
Получаем 4 варианта с углами поворота относительно дефолтного значения
int rotation = getWindowManager().getDefaultDisplay().getRotation();
int angle = 0;
switch (rotation) {
case Surface.ROTATION_90:
angle = -90;
break;
case Surface.ROTATION_180:
angle = 180;
break;
case Surface.ROTATION_270:
angle = 90;
break;
default:
angle = 0;
break;
}
Теперь устанавливайте полученную ориентацию:
setRequestedOrientation(/* сюда поместите одно из значений констант класса ActivityInfo */);
Комментариев нет:
Отправить комментарий