Android: Как отменить изменение ориентации - PullRequest
1 голос
/ 06 января 2012

Я хочу отменить автоматическое вращение просмотров в моем приложении.Есть много постов, нацеленных на эту тему [1], все они предлагают такие вещи, как настройка

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

или

 <activity android:name=".myActivity"                  
          android:screenOrientation="portrait">

, которая делает именно то, что мне нужно, но предотвращает onConfigurationChanged () от стрельбы, что означает, что я больше не могу отслеживать ориентацию телефона.Дело в том, что в какой-то момент мне нужно знать об ориентации.

Есть идеи, как получить ориентацию телефона без включения поворота видов?

[1] Как отключить изменение ориентации на Android?

Ответы [ 4 ]

2 голосов
/ 06 января 2012

Могу ли я предложить использовать OrientationEventListener ?Я думаю, что вы все равно будете получать уведомления, даже если вы установите ориентацию в файле manifest.xml.

0 голосов
/ 06 января 2012

Если вам нужна эта информация для поворота экрана, вам следует внедрить onConfigurationChanged самостоятельно.

Если вам нужна эта информация для каких-либо других целей, я думаю, вам следует использовать датчики (акселерометр или компас)

0 голосов
/ 06 января 2012

Как вы говорите "Дело в том, что мне нужно знать об ориентации в какой-то момент."

Вы можете проверить ориентацию в любое время

int orientation = getWindow().getWindowManager().getDefaultDisplay().getOrientation();
    if(orientation == 0){ //horizontal

    }else if(orientation == 1){ //vertical

    }

Деталь ориентации: http://developer.android.com/reference/android/R.attr.html#orientation

0 голосов
/ 06 января 2012

Если вам нужно получить вращение, используйте Display # getRotation () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...