Автофокус камеры Android, когда пользователь держит камеру неподвижно

Я уверен, что большинство из вас раньше использовали телефон Android и делали снимки. Всякий раз, когда пользователь меняет положение мобильного телефона и держит его неподвижно, камера автоматически фокусируется. Мне трудно воспроизвести это в моем приложении. Метод autofocus() вызывается только один раз при запуске приложения. Последние 3 дня я искал решение, и, читая документацию Google, я наткнулся на вызовы методов датчика (например, когда пользователь наклоняет мобильный телефон вперед или назад). Я мог бы использовать этот API для достижения того, что мне нужно, но это звучит слишком грязно и слишком сложно. Я уверен, что есть другой способ обойти это.

Все примеры в Интернете, которые я нашел, фокусируются только тогда, когда пользователь нажимает на экран или кнопку. Я также рассмотрел несколько вопросов о SO, чтобы, надеюсь, найти то, что ищу, но мне это не удалось. Я видел этот вопрос и эту строку не совместим с моим телефоном. По какой-то причине единственные режимы фокусировки, которые я могу использовать, это фиксированный и автоматический.

Я надеялся, что кто-то здесь прольет свет на эту тему, потому что я в недоумении.

Большое спасибо за уделенное время.


person justin.saliba    schedule 08.09.2011    source источник


Ответы (2)


Да, camera.autoFocus(callback) — это одноразовая функция. Вам нужно будет вызвать его в цикле, чтобы автофокус был непрерывным. Желательно иметь обнаружение движения с помощью акселерометра или компаса, чтобы определить, когда камера перемещается.

person Peter Knego    schedule 08.09.2011

Начиная с API 14 вы можете установить этот параметр

http://developer.android.com/reference/android/hardware/Camera.Parameters.html#FOCUS_MODE_CONTINUOUS_PICTURE

person Dlq    schedule 09.05.2012