Перевернутый интерфейс при ориентации временного замка
У меня проблема с 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 устарела и не знает о перевернутой портретной ориентации.