Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > Отключение проверки на положение экрана


Автор: Взюх 15.9.2011, 15:31
     Всем привет, такая задача,  я определяю что больше высота или ширина экрана и исходя из этого поворачиваю его нужным образом но дальше нужно что б это положение экрана не менялось, то есть, как бы уже пользователь не повернул аппарат, экран не должен уже на это реагировать.
Подскажите как можно отключить проверку на положение экрана.

Автор: Чемодан 15.9.2011, 16:01
Проще всего - в AndroidManifest.xml (на каждую активити)

...
Код

        <activity android:name=".xxxActivity"
                  android:label="@string/app_name">

...

сделать так

...
Код

        <activity android:name=".xxxActivity"
                  android:label="@string/app_name"
                  android:screenOrientation="landscape">

...

или portrait вместо landscape.

Это чтобы ничего не проверять и код не городить. Если нужно одно положение за весь цикл программы, вот решение.

Автор: Vse3D 15.9.2011, 16:18
а можно задать на разные приложения включение выключение автоповорота?

Автор: Чемодан 15.9.2011, 16:22
Ну так убери строчку android:screenOrientation="landscape", как по умолчанию, и будет тебе автоповорот,
хоть на всю программу, хоть на определенный его активити )
На разные приложения и так разные конфиги делаешь. Я надеюсь, что мы друг друга правильно поняли.

(*минуту спустя) Я только сейчас понял - тебе нужна в программе кнопка, которая будет 
выключать/выключать автоповорот?

Автор: Взюх 15.9.2011, 17:28
Я немного не понял что ты имел введу. Вероятно я не совсем ясно описал свою беду.

Когда программа только запускается, метод определяет как нужно повернуть экран, потом происходит перезагрузка активити ( с нужным положением экрана ) и все в порядке, все работает, но если повернуть экран еще раз, то активити еще раз перегружается ( что нужно предотвратить ).

Вот и появилась мысль что нужно как отключить проверку ( не моего метода ) как нужно повернуть экран. 

Автор: spyswamp 15.9.2011, 18:37
Соседние темы глянь про ориентацию экрана - на мысли натолкнет, я уверен.

Автор: Взюх 16.9.2011, 12:57
оказывается, если запускать приложение на телефоне то независимо от того как он повернут, всегда будет  сохранятся то положение экрана которое было заданно, ( метод onCreadte () ) срабатывает только 1 раз при запуске приложения.

если запустить приложение на эмуляторе, то метод onCreate() будет срабатывать каждый раз когда эмулятор поворачивают.

то есть в реальности у меня все было правильно и работало, просто надо было испытывать на телефоне а не на эмуляторе.

Всем спасибо за ответы

Автор: ruberoid 16.9.2011, 14:09
Цитата(Взюх @  16.9.2011,  12:57 Найти цитируемый пост)
оказывается, если запускать приложение на телефоне то независимо от того как он повернут, всегда будет  сохранятся то положение экрана которое было заданно, ( метод onCreadte () ) срабатывает только 1 раз при запуске приложения.

О, интересно. Я и незнал. Нужно попробовать.

Автор: DroidC3PO 11.10.2011, 20:16
Тоже самое как указал Чемодан в коде 

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_UNSPECIFIED = -1;
  
  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_LANDSCAPE = 0;
  
  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_PORTRAIT = 1;
  
  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_USER = 2;
  
  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_BEHIND = 3;
  
  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_SENSOR = 4;
  
  // Field descriptor #10 I
  public static final int SCREEN_ORIENTATION_NOSENSOR = 5;

Автор: ivanovpv 12.10.2011, 07:23
Способов масса, самый простой вызвать:

Код

setRequestedOrientation(OFF);


Отключает сенсор ориентации экрана - соответственно как ни крути экран поворачиваться после этого не будет

Автор: donnibras 12.10.2011, 10:28
Мой друг долбался с этим неделю, вот он обрадуется когда я ему дам ссылочку на эту страничку!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)