как отобразить две поверхности друг над другом?

1

У меня есть 3D-куб, и я открываю предварительный просмотр камеры, и я хочу видеть, как этот вращающийся куб отображается над камерой.

То, что я попытался, внутри метода SurfaceChanged класса, реализующего surfaceHolder.callback, вызываю camera.setPreviewCallback(new PreviewCallback(){ } следующим образом:

public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
.......
.......
.......
camera.setPreviewCallback(new PreviewCallback() {
        @Override
        public void onPreviewFrame(byte[] data, Camera camera) {
            // TODO Auto-generated method stub
            glSurface.setRenderer( new MyRender());
            setContentView(glSurface);
        }
    });

В результате этого кода отображается предварительный просмотр камеры в течение нескольких секунд до тех пор, пока поверхность не будет изменена, затем предварительный просмотр камеры исчезнет, и 3D-куб появится на черном фоне.

Так или иначе, чтобы показать обе поверхности?

Теги:
augmented-reality
surfaceview

2 ответа

1
Лучший ответ

Насколько я помню, вам нужно установить CameraPreview в ontop GlView. То не интуитивно, но должно работать. вот ссылка, которая может вам помочь: http://digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview

0

Вы можете сделать свой собственный внеэкранный композитинг, а затем нарисуйте результат в один SurfaceView. См. Этот пример кода для получения более подробной информации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню