Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Spelcrawler
525 / 495 / 111
Регистрация: 12.03.2014
Сообщений: 1,647
Завершенные тесты: 1
#1

Запрет поворота экрана - Android

26.05.2015, 10:36. Просмотров 902. Ответов 5
Метки нет (Все метки)

Здравствуйте. Как лучше всего запретить поворот экрана, но так, чтобы на планшетах он сразу был в альбомной ориентации, а на телефонах в портретной? Нужно для splashscreen'а, возиться со всякими retain fragment и т.д. не хочу для такого маленького экрана.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 10:36     Запрет поворота экрана
Посмотрите здесь:

Android Запрет поворота экрана после создания активити
Android Обработка поворота экрана. Сохранение введенной информации
Android Запуск в ландшафтном режиме и запрет поворота. Как сделать?
Android Обработка события поворота устройства
Обработка поворота устройства Android
Android Поворот куба сначала вокруг оси y с.к. экрана потом вокруг оси x с.к. экрана
Android Запрет выполнения onCreate при повороте экрана
После поворота экрана view формы пропадают Android
Анимация поворота Android
Как сделать анимацию объемного поворота? Android
Запрет использования микрофона Android
После поворота TextView занимает столько же места как и до поворота Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
26.05.2015, 10:53     Запрет поворота экрана #2
Spelcrawler, добрый день!
Есть такие папки типа values-sw600dp, values-w820dp и др. Внутри можно создать файл bool.xml:
XML
1
2
3
4
<?xml version="1.0" encoding="utf-8" ?> 
<resources>
  <bool name="portrait_only">false</bool> 
</resources>
Он задаёт переменную, а в коде активности надо прописать так:
Java
1
2
3
4
5
6
7
8
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        if (getResources().getBoolean(R.bool.portrait_only)) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        super.onCreate(savedInstanceState);
        ...
    }
Достаточно установить переменную в одной из таких папок. Почитайте об этом подробнее.
Есть одна проблема. Бажная корпорация Google полагает, что надо мерять dp, а не размеры экрана. В связи с этим, если попробовать запустить в эмуляторе планшета с низким разрешением (типа 800x480), то будет считать, что это смартфон.
Spelcrawler
525 / 495 / 111
Регистрация: 12.03.2014
Сообщений: 1,647
Завершенные тесты: 1
26.05.2015, 10:55  [ТС]     Запрет поворота экрана #3
CoolMind, думал сделать так, но
Цитата Сообщение от CoolMind Посмотреть сообщение
если попробовать запустить в эмуляторе планшета с низким разрешением (типа 800x480), то будет считать, что это смартфон
это все портит. Может можно как-то не определять планшет это или телефон, а в зависимости от ориентации во время запуска приложения показать экран в нужной ориентации и больше его не вертеть?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
26.05.2015, 11:02     Запрет поворота экрана #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Spelcrawler, честно говоря, не знаю, хорош ли этот способ, но он реализуем (https://androidresearch.wordpress.co...orientation/):
Java
1
2
3
4
5
6
7
8
9
10
11
12
private void lockScreenOrientation() {
    int currentOrientation = getResources().getConfiguration().orientation;
    if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}
 
private void unlockScreenOrientation() {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
Я обычно объединяю два метода в один (на вход подаю булеву переменную).
Spelcrawler
525 / 495 / 111
Регистрация: 12.03.2014
Сообщений: 1,647
Завершенные тесты: 1
26.05.2015, 11:19  [ТС]     Запрет поворота экрана #5
CoolMind, то что нужно, спасибо!
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
26.05.2015, 11:58     Запрет поворота экрана #6
Spelcrawler, приятно слышать! Но мне кажется, всё равно придётся что-то переделывать, этот вариант тоже может не устроить.
Yandex
Объявления
26.05.2015, 11:58     Запрет поворота экрана
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru