2014-02-10 3 views
0

У меня есть ориентация мое приложение вынудила черезКак заставить макеты изменения в Android

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

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

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

или

android:screenOrientation="landscape" in manifest 

Я хочу, чтобы он вынужден Portait, потому что я строю приложение камеры и портит каждый раз камеры, и я хочу, чтобы он вроде у камеры по умолчанию есть - без изменений, только ориентация кнопки. Если это имеет смысл.

ответ

1

Много приложений камеры достичь этого путем вращения View сек и это хороший способ сделать это, потому что вам не придется иметь дело с жизненным циклом деятельности а в жизненном цикле камеры. У них есть фиксированная ориентация, но они используют акселерометр для поворота устройства, а затем поворачивают View s соответственно.

Camera API дает вам возможность set camera rotation, а также ориентацию изображения. Ориентация изображения должна быть установлена ​​на ноль, потому что Camera API ненадежна с этим.

Используйте акселерометр, чтобы определить реальное вращение устройства и установите поворот изображения EXIF ​​на правильный.

+0

ОК спасибо за совет, я думаю, я сделаю это таким образом, кажется более простым. Но мне все же любопытно, есть ли способ сделать это, это должно быть выполнимо. – honzaik

+0

Обработка изменений ориентации более проблематична, чем поворот некоторых видов, я думаю – Sam

Смежные вопросы