2012-05-15 5 views
0

Приложение для Android работает только в портретной ориентации. ландшафтный режим отключается сAndroid. Как определить ориентацию экрана, если приложение поддерживает только портретный режим?

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT). 

Но у меня есть диалог с видом подписи (настраиваемое представлением), и пользователь использует его для рисования своей подписи. В результате получается растровое изображение. У меня также есть ImageView для сохраненного предварительного просмотра подписи, который отображает битмап, описанный выше. Пользователь может держать свое устройство так, как он хочет, рисуя подпись. Итак, мое приложение должно вращать результирующее растровое изображение в соответствии с текущим положением экрана. Например, пользователь рисует свою подпись с углом = 90 градусов, и я хочу повернуть растровое изображение на 90 градусов, и мое приложение будет правильно отображать растровое изображение подписи в портретном режиме. Проблема заключается в том, что только портретный режим поддерживается и следующие подходы не работают:

int rotation = getResources().getConfiguration().orientation; 

или

int rotation = getWindowManager().getDefaultDisplay().getOrientation(); 

В результате этих операторах всегда 0.

Итак, как я может получить текущую позицию устройства в случае, если изменение ориентации отключено?

+0

Вы можете использовать аппаратные датчики, чтобы получить точную ориентацию телефона и определить, к какому пути он относится – dymmeh

+0

Как я знаю, аппаратные датчики используют обратный вызов onChanged(), и я могу получить значение только тогда, когда этот обратный вызов произойдет. Кроме того, датчик даст мне исходные значения, и он обещает быть огромной рабочей нагрузкой для обработки их в более удобных значениях, таких как Surface.ROTATION_0, Surface.ROTATION_90, Surface.ROTATION_180, Surface.ROTATION_270. – tundundun

ответ

1

Вы можете сделать свой диалог отдельным действием и сделать его не ограниченным портретной ориентацией.

+0

К сожалению, я не могу сделать это не ограничиваясь книжной ориентацией, так как это требование клиента. И вместо того, чтобы создавать новую активность, диалог для меня не является выходом из-за того, что представление подписи на пользовательском пейджере с несколькими фрагментами и восстановление его состояния после запуска нового действия не так просто. – tundundun