0

有什么方法可以将两个表面视图相互设置,其中一个用于保存 CameraPreview,另一个用于保存 OpenGL 表面。

我已经尝试过这个问题,我的尝试在下面(code1和code2)中提到

代码 1 1- 在此代码中,我使用第 1 行中提到的命令打开相机 2- 从渲染类实例化一个对象,并使用 setContentView() 将此对象添加到表面视图

但在这种情况下,相机会打开几秒钟然后消失,然后,出现 OpenGl 对象。

public void surfaceCreated(SurfaceHolder holder) {

    camera = android.hardware.Camera.open(); //line 1
    //gLSurfaceView = new GLSurfaceView(this);
    //gLSurfaceView.setRenderer(new MyRender());
    //setContentView(gLSurfaceView);
}

代码 2 在这段代码中,我同时实例化了 CameraSurface 和 Render 类。我还在 XML 文件中创建了一个 FrameLayout。然后将camerSurface对象添加到setContentView,将Render对象添加到FrameLayout。但是这样,只会显示添加到框架布局的对象。

cameraSurfacePreviewDemo = new CameraSurfacePreviewDemo(this);
    glSurfaceView = new GLSurfaceView(this);
    glSurfaceView.setRenderer(new MyRender());
    //setContentView(cameraSurfacePreviewDemo);
    //setContentView(glSurfaceView);
    //fl01.addView(glSurfaceView);
    //fl01.addView(cameraSurfacePreviewDemo);

==================================================== ========================================== 任何为Android初学者提供良好教程的条款相机和AndR“增强现实”或为Android相机和AndR“增强现实”的初学者推荐好书将不胜感激。

4

1 回答 1

0

IIRC这是不可能的。表面视图不能重叠。(Diane Hackeborn 给出了更长的解释)

于 2012-04-25T08:08:53.697 回答