Предварительный просмотр полноэкранной камеры Xperia Z?

Я кодирую приложение для Android, которое использует класс SurfaceView для предварительного просмотра камеры, который хорошо работает на Nexus Galaxy и Desire HD.

Атрибут ширины / высоты макета вида поверхности - match_parent.

Но я столкнулся с проблемой: на SONY Xperia Z разрешение экрана 1080p, но наибольшее разрешение предварительного просмотра - 1280 * 720.

Таким образом, превью моей камеры занимает только часть полного экрана, а остальное пространство остается пустым.

Как сделать предварительный просмотр в полноэкранном режиме?


person petitchamp    schedule 04.05.2013    source источник


Ответы (1)


Измените размер SurfaceView в ландшафтном режиме следующим образом:

        // float camera_ratio = preview_size.width * preview_size / height; 
        ViewGroup.LayoutParams params = surfaceView.getLayoutParams();
        params.height = surfaceView.getHolder().getSurfaceFrame().height();
        params.width = Math.round(camera_ratio * params.height);
        surfaceView.setLayoutParams(params);

Или переключите некоторые параметры, если ваше приложение находится в портретном режиме.

edit: Holy moly, извините за то, что воскресил этот вопрос полугодовой давности!

person Rygu    schedule 04.11.2013