Обнаружение изменения ориентации устройства с помощью Android: screenOrientation - PullRequest
2 голосов
/ 29 марта 2011

Есть ли способ обнаружить события ориентации устройства или, по крайней мере, получить текущую ориентацию устройства при использовании android: экранная ориентация в манифесте? Я имею в виду ориентацию устройства, а не ориентацию приложения.

Моя проблема в том, что я действительно хочу сохранить свое приложение в режиме портрета (это веб-вид), но я хочу самостоятельно справиться с изменением ориентации приложение. Когда установлен android: screenOrientation, ориентация определяется методы всегда ориентация приложения, а не устройство ориентации.

С уважением, Гаэтан

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Если вы хотите самостоятельно обрабатывать ротацию устройства, используйте следующий метод:

@Override
public void onConfigurationChanged(Configuration config)
{
    super.onConfigurationChanged(config);
    Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

    if(display.getRotation() == Surface.ROTATION_90)
    {           
        mFlash.startAnimation(mRotate);
    }
    if(display.getRotation() == Surface.ROTATION_90)
    {
        parameters.setPreviewSize(width, height);                           
    }

    if(display.getRotation() == Surface.ROTATION_180)
    {
        parameters.setPreviewSize(height, width);               
    }

    if(display.getRotation() == Surface.ROTATION_270)
    {
        parameters.setPreviewSize(width, height);
        mCamera.setDisplayOrientation(180);
    }

}

Действия внутри операторов if являются лишь примерами того, что может быть сделано.Очевидно, обрабатывать все, что вам нужно там.

1 голос
/ 29 марта 2011

Йо может использовать ацетерометр для определения ориентации устройства. Я знаю, это сложнее, но я думаю, что это единственное решение.

Android | Диспетчер датчиков

Android | Диспетчер датчиков | GetOrientation

Удачного кодирования:)

0 голосов
/ 29 марта 2011

Я думаю, что хорошие значения ориентации (книжная или альбомная), которые вы получите, всегда будут давать вам «ориентацию на приложение».Для ориентации устройства вы можете проверить SensorManager.getOrientation .

К сожалению, метод прослушивания изменений в этом значении помечен как устаревший, поэтому вам может потребоваться периодически опрашивать.

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