Zxing - Изменение вида камеры -90 градусов

Прежде всего, я хотел бы сослаться на эту проблему в группы гугл.

Моя проблема в том, что я хочу, чтобы приложение для альбомной ориентации работало в портретном режиме. Способ перевода приложения в портретный режим вообще не проблема, но когда вы отображаете приложение в портретном режиме, возникает моя проблема.

Когда сканер штрих-кода запускается, его камера (по умолчанию) находится под углом +90 градусов. При просмотре приложения в портретном режиме сканер штрих-кода (естественно) все еще находится под углом +90 градусов.

На указанной странице проблемы отображается способ решения проблемы, но, похоже, он не работает на большинстве устройств. Это также не работает на моих целевых устройствах.

Я хотел бы услышать, есть ли у кого-нибудь из вас обходной путь или место в исходниках, где можно «отменить» переворот на 90 градусов?

Полезный ответ будет крайне признателен: D К сожалению, я не могу добиться прогресса в проекте, пока это не будет решено. Требуется запуск в портретном режиме ;)

Заранее... Спасибо :)


person AppDev    schedule 10.02.2011    source источник


Ответы (1)


Я реализовал это в частной сборке. Это сложно, и я не могу поделиться подробностями. Ключевые шаги:

  • Вызовите Camera.setDisplayOrientation(), чтобы противодействовать повороту; см. Android javadoc для обсуждения этого
  • Убедитесь, что Camera.Parameters.setPreviewSize() вызывается правильно; размеры предварительного просмотра сообщаются в альбомной ориентации, но должны быть установлены в портретной ориентации
  • (И угадайте, что — ориентация телефонов по умолчанию считается книжной, а планшетов — альбомной! Убедитесь, что вы это тоже учли.)
  • Наконец, данные предварительного просмотра всегда находятся в ландшафтном режиме. Вам нужно повернуть его самостоятельно, чтобы прочитать его с правой стороны, или иным образом учесть это.
person Sean Owen    schedule 23.09.2011
comment
Спасибо за информацию, Шон, и хотел бы поделиться еще более подробной информацией :) Не могли бы вы подробнее прокомментировать пункты 2 и 3, стандартные и фактические, между телефонами и планшетами? - person Walter K; 28.09.2011
comment
Просто обязательно прочитайте Camera.CameraInfo о камере, которую вы открыли. Однако это доступно только в Android 2.3+. Это поможет вам понять, в каком направлении находится камера. А затем поверните его, если вы используете переднюю камеру! это немного ошеломляет, чтобы понять все случаи правильно. - person Sean Owen; 28.09.2011
comment
FWIW вы можете увидеть, как это выглядит в действии, в Barcode Scanner+ (market.android .com/details?id=com.srowen.bs.android). Хотя это платное приложение. - person Sean Owen; 15.10.2011