如何在彼此之间显示两个表面?

时间:2012-05-21 10:07:45

标签: android surfaceview augmented-reality

我有一个3D立方体,我打开相机预览,我想看到这个旋转立方体显示在相机上。

我尝试的是,在实现surfaceHolder.callback的类的SurfaceChanged方法中,我调用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立方体出现在黑色背景上。

无论如何都要显示两个表面?

2 个答案:

答案 0 :(得分:1)

据我所知,您必须在GlView的顶部设置CameraPreview。这不直观,但应该有效。 这是一个可以帮助您的链接:http://digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview

答案 1 :(得分:0)

您可以进行自己的屏幕外合成,然后将结果绘制到单个SurfaceView中。有关详细信息,请参阅this sample code