2013-06-24 3 views
0

Мне удалось создать класс, который позволяет мне иметь предварительный просмотр комнаты (который поддерживается SurfaceView), и до сих пор все в порядке, код работает. Теперь мне было интересно, можно ли создавать кнопки (или, вообще говоря, любой другой объект) на этой поверхности.Android: Советы по CameraPreview

Я попытался загрузить макет с помощью setContentView (my_layout), но при этом не загружается (или, по крайней мере, не показан) объект SurfaceView. Как я понял, вы можете загрузить только один из двух, или, может быть, я что-то упустил?

Извините за плохой английский, но этот текст был сгенерирован Google Translate.

ответ

1

Что вам нужно сделать, так это создать рамку и добавить кнопки. Или построить свой вид с addContentView

LayoutInflater inflater = getLayoutInflater(); 
getWindow().addContentView(inflater.inflate(R.layout.main, null), new  ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
+0

Человек, спасибо за помощь, я постараюсь сразу же, но прежде чем идти дальше, я хотел бы, чтобы любой другой совет в противном случае был бы бесполезен для продолжения. Я спросил об этом, потому что моя идея - создать объекты этого предварительного просмотра камеры, а затем привести их в движение (используя потоки). Теперь я также хочу выяснить, не ошибаюсь ли я в отношении программы (так что я могу опираться на библиотеки, которые делают все это автоматически), или моя идея будет работать, и я должен просто продолжить разработку этого приложения. – mazinthebox

0

Вы можете создать макет с прозрачным фоном и поместите его над вашей точки зрения поверхности.

Хорошо, что нужно создать FrameLayout с 2 элементами в нем. 1-й - ваш SurfaceView с match_parent для ширины и высоты, поэтому он занимает весь родитель FrameLayout.

2nd будет вашим макетом с прозрачным фоном, который может занимать, например, часть родительского FrameLayout.

Итак, ваш SurfaceView будет создан первым и над ним будет ваш прозрачный макет с кнопками.

Это может работать для вида панели управления или что-то, но если вы хотите вид дополненной реальности вы можете взглянуть на OpenCV SDK для Android, где они делают изменения камеры предварительного просмотра картины, применяя фильтры к ним и т.д.

+0

Я искал именно это, какую-то библиотеку, которая позволила бы мне справиться с дополненной реальностью, спасибо за подсказку. В любом случае, ранее я уже пытался подтянуть макет с прозрачным фоном и добавить нас под объект SurfaceView, но нет, он не работал (если вы хотите, я могу добавить код). Извините за плохой английский, но этот текст был сгенерирован Google Translate. – mazinthebox