2016-10-08 15 views
0

Я пытаюсь получить полноэкранный просмотр камеры. Я прочитал документацию камеры2, в которой говорится: Each Surface has to be pre-configured with an appropriate size and format (if applicable) to match the sizes and formats available from the camera device. Вот что я понимаю до сих пор. Пожалуйста, исправьте меня, если какое-либо из моих соображений неверно:Как получить полноэкранный режим с помощью камеры2?

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

  2. Вы должны установить размер буфера в виде текстуры для оптимально выбранного размера предварительного просмотра. camera2basic demo, похоже, подтверждает это с помощью строки texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight().

Вопрос у меня есть, как только вы подходите соотношение сторон и размер представления текстуры и предварительный просмотр, чтобы быть таким же, как масштабировать вид текстуры, так что он подходит на весь экран?

Метод камеры2basic demo configureTransform, кажется, преображает TextureView в размер предварительного просмотра, но не делает его полноэкранным. Как рассчитать правильный масштабный коэффициент, чтобы сделать полноэкранный режим TextureView?

ответ

0

Вы можете просто заставить свой TextureView заполнить экран в макете своей деятельности. Затем вам нужно будет настроить метод configureTransform() для учета разницы в соотношении сторон между полноэкранным TextureView и размером предварительного просмотра самого близкого размера; в основном вам необходимо реализовать обычный эффект буквенного или столбчатого бокса.

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