Перевернутый интерфейс при ориентации временного замка

У меня проблема с Android 2.2 и ориентацией экрана. У меня есть флажок на моем интерфейсе, который, когда проверено, ориентация должна быть заблокирована на текущей ориентации, поэтому я сделал следующий код:

Activity a = (Activity) getContext();

if (isChecked) {
    if (getResources().getConfiguration().orientation == configuration.ORIENTATION_LANDSCAPE)
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else {
    a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}

Проблема в том, что если я переверну устройство вверх ногами, мой экран повернется к нему, и когда я нажму на "блокировку ориентации", getResources(). GetConfiguration(). Ориентация вернет SCREEN_ORIENTATION_PORTRAIT, и мой код заблокирует ориентация на SCREEN_ORIENTATION_PORTRAIT и интерфейс будет перевернутым.

Я вижу, что на Gingerbread (http://developer.android.com/reference/ android/R.attr.html#screenOrientation), есть решение reversePortait и reverseLandscape, чтобы решить эту проблему, но мне действительно нужен этот код для запуска на 2.2 Так есть ли вообще установить экран вверх ногами? Или есть другой способ заблокировать вращение?

1 ответ

Используйте ScreenRotation. ScreenOrientation устарела и не знает о перевернутой портретной ориентации.

Другие вопросы по тегам