Android - сделать вид поверхности больше, чем родительский - PullRequest
3 голосов
/ 10 января 2012

У меня есть приложение на основе вкладок «Портретный режим», которое содержит SurfaceView (с предварительным просмотром камеры на нем) на одной из вкладок. Я создавал код своей камеры из демонстрации Android API, и у меня все настроено правильно, за исключением одного. Полученный в результате предварительный просмотр камеры растягивается и масштабируется, что позволяет сделать предварительный просмотр.

В идеале я хочу визуализировать SurfaceView с исходным размером предварительного просмотра, заданным камерой на вкладке. Однако это будет включать в себя увеличение содержимого вкладки по сравнению с ее родительским элементом! (Точнее, чем FrameLayout, в котором содержатся действия вкладки).

Как я могу добиться этого?

Изображение проблемы: enter image description here

1 Ответ

0 голосов
/ 20 июля 2012

Сделайте FrameLayout корневым объектом, затем поместите в него вид с камеры, затем заголовок и виджет вкладки.Возможно, вам придется сделать некоторую сложную работу с настройками гравитации и сложить верхний / нижний колонтитул в линейных макетах, но это определенно возможно.

aka:

frame.addView(cameraPreview);
frame.addView(header);
frame.addView(footer);

Это будет рисовать объекты слоями.

РЕДАКТИРОВАТЬ: Если вы не хотите использовать текущий макет кадра, просто сделайте еще один.Сложите верхний, верхний и нижний колонтитулы внутри линейного макета.Создайте новый макет фрейма, добавьте к нему линейный макет, а затем добавьте предварительный просмотр, чтобы нарисовать поверх него.

...