Остановка вращения поверхности при отображении предварительного просмотра камеры

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

Когда я фиксирую ориентацию приложения на альбомную в моем AndroidManifest.xml, вид поверхности ведет себя так, как я хочу, в том смысле, что он не вращается, а предварительный просмотр камеры работает отлично.

Проблема в том, что у меня есть другие объекты на экране, которые нужно поворачивать в соответствии с ориентацией телефона, а теперь этого не происходит, потому что я установил альбомную ориентацию.

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

Спасибо, Эндрю


person Andrew Partis    schedule 07.05.2011    source источник
comment
Вы можете попробовать это, возможно решить вашу проблему. [ориентация поверхности камеры Android][1] [1]: stackoverflow.com /вопросы/5157984/   -  person Nonoroazoro    schedule 30.01.2013


Ответы (1)


Camera.Parameters имеет метод setRotation(). Используйте его для поворота камеры при переходе от пейзажа к портрету и наоборот. Тогда вам не нужно беспокоиться об отделении ваших макетов от представления поверхности.

person pumpkee    schedule 07.05.2011
comment
Спасибо за быстрый ответ. Я попытался повернуть камеру с помощью setRotation, но предварительный просмотр по-прежнему отображался с неправильным поворотом. Я пытался использовать params.set(rotation, 0), я пробовал оба сразу, я пытался остановить предварительный просмотр перед внесением изменений и запустить его снова, но ничего из этого не сработало. - person Andrew Partis; 07.05.2011