работа с камерой в андроид - PullRequest
0 голосов
/ 02 августа 2011

Я работаю над приложением в Android, которое использует камеру, и я сталкиваюсь со следующей проблемой:

1.Если я просто делаю снимок без специальных настроек для камеры (настройки ориентации Iзначит) также превью и моя полученная картинка будут выглядеть так: http://i51.tinypic.com/xfx3jq.png, что совсем не правильно.Теперь, что я делаю с этой картинкой, это загружаю ее на веб-сайт, где настроена такая же ориентация !!!

2. Если я настрою свою деятельность в режиме LANDSCAPE, то моя картинка будет выглядеть такэто: http://i56.tinypic.com/152c41e.png с кнопками, настроенными так, как вы видите. И любой дополнительный вид настроен неправильно, как здесь: http://i56.tinypic.com/16ifxqx.png, что крайне неправильно.И прежде всего, когда я загружаю картинку на веб-сайт, он больше не ориентирован по центру и выглядит так: http://i51.tinypic.com/xfx3jq.png.

Как мне поступить, чтобы получить ориентированную по центру картинку с дополнительным видом, который выглядит нормально икогда я загружаю его на веб-сайт, чтобы он выглядел также вертикально ориентированным ???Спасибо!

Я должен сказать, что я создаю свою собственную камеру в Android.

РЕДАКТИРОВАТЬ: Я пытался

Camera.Parameters p = mCamera.getParameters();
p.setRotation(270);
mCamera.setParameters(p);

, но не влияет на мое изображение!

РЕДАКТИРОВАТЬ:

в моем onCreate() Я настроил свою ориентацию следующим образом:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

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

1 Ответ

0 голосов
/ 02 августа 2011

В старых Android-версиях была ошибка, связанная с ориентацией камеры, добавив это в onCreate () - Метод должен это исправить (для обратной совместимости это также имеет место в более новых версиях Android):

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Это независимо от желаемой ориентации. Но будьте осторожны: это поможет на многих телефонах, например, будет ужасно терпеть неудачу на телефонах Samsung, поскольку они, кажется, исправили эту проблему, ломая обратную совместимость. Для тех, кто может добавить что-то вроде этого (но только для этих устройств):

Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
parameters.set("rotation", "90");

Посмотрите здесь для получения дополнительной информации: Проблема ориентации в камере

...