Android - снимок, отличный от предварительного просмотра - PullRequest
3 голосов
/ 19 июля 2010

У меня есть приложение для камеры, в самом простом виде это не что иное, как пример cameraPreview с некоторым кодом takePicture. Ссылка на пример онлайн для 2.0, и я разрабатываю против 1.5 (API lvl 3), но все же, вот оно: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html

Самым большим отличием от старой версии является вся функция "getOptimalPreviewSize". Все сделано в ландшафте.

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

Теперь я собираюсь поместить наложение поверх предварительного просмотра, чтобы выровнять объект на изображении с чем-то. Если снимок сделан, все это немного сжимается, и я все выровнен: (.

Приложение камеры в системе не имеет этой проблемы, поэтому должна быть возможность исправить это. Есть мысли?

Если я должен вручную установить предварительный просмотр и / или размер изображения, я думаю, что у меня будут проблемы с различными телефонными трубками, и поскольку существует много функций только после API lvl 5 (например, getOptimalPreviewSize), я не могу используйте их.

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

Создав специальное приложение для камеры для Android, я точно знаю, через что вы проходите.По состоянию на 29.10.2011 Android 1.5 составляет всего 1,1% пользователей Android.Вам лучше подняться как минимум до уровня API 5. Если вы хотите последовательно поддерживать портретный и альбомный предварительный просмотр на всех устройствах, я рекомендую вам пойти еще выше.

Используйте getSupportedPreviewSizes () и getSupportedPicturesSizes().Эти функции точно указывают, что поддерживает камера (зависит от телефона / производителя).Запустите перечисления и найдите значения, которые совпадают с обоими.Используйте тот, который подходит вам больше всего.

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

ссылка на 1,5 пользователей Android

1 голос
/ 11 августа 2013

Наибольший размер предварительного просмотра, возвращаемый getSupportedPicturSizes, представляет собственное разрешение вашей камеры.Если соотношение сторон этого размера отличается от размера предварительного просмотра или размера изображения, для которого вы установили объект Camera, тогда произойдет обрезка.Вы можете сравнить пропорции, чтобы определить, сколько будет обрезано и в каком направлении (сверху / снизу и слева / справа)

...