Android камера предварительного просмотра работает только в 2 из 3 телефонных ориентаций - PullRequest
0 голосов
/ 15 февраля 2012

В своем приложении для Android я использую класс Camera для получения снимков с камеры телефона.Я использую startPreview, чтобы запустить предварительный просмотр камеры, а затем сделать снимок для захвата изображений.Я навязываю ландшафт приложению, добавив

android:screenOrientation="landscape"

в AndroidManifest.xml.Проблема в том, что когда я возвращаюсь к своему приложению, мой телефон поворачивается на 90 градусов против часовой стрелки.В этом случае я не вижу предварительный просмотр.Он либо черный, либо не установлен для просмотра.Я вижу графический интерфейс и могу правильно получать изображения с телефона.Все работает, кроме превью не видно.Этого не происходит, когда телефон находится в портретном положении или когда телефон поворачивается на 90 градусов по часовой стрелке.

Короче говоря, предварительный просмотр черного цвета при повороте влево, но в других случаях предварительный просмотр в порядке.

Я довольно долго бился об этом, но, наконец, обнаружил, что это связано с ориентацией телефона, прежде чем вернуться в приложение.

Почему мой предварительный просмотр не виден на этой конкретной ориентации?

Редактировать: Я что-то обнаружил.Это не ошибка камеры как таковая, GUI SurfaceView, который я поместил над предварительным просмотром камеры, каким-то образом скрывает предварительный просмотр.Я установил прозрачный фон, но он не работает, я также удалил все вызовы отрисовки в onDraw.Но это все еще рисует как черный.Это не происходит в других направлениях по какой-то причине.Есть идеи?

1 Ответ

0 голосов
/ 15 февраля 2012

На какой API вы ориентируетесь?

Если это достаточно недавно, попробуйте изменить "landscape" на "sensorLandscape"

Я полагаю, это сработает для вас. Однако, если вы нацелены на слишком старый API-уровень, у вас не будет этой опции.

...