相互显示两个表面视图?

时间:2012-04-25 07:34:03

标签: android opengl-es android-camera augmented-reality

有没有办法在彼此之间设置两个表面视图,以便其中一个用于保持CameraPreview而另一个用于保持OpenGL表面。

我尝试过这个问题,下面在(code1和code2)

中提到了我的尝试

代码1 1-在此代码中,我使用第1行中提到的命令打开相机 2,从Render Class中实例化一个对象,并将该对象添加到    使用setContentView()

的surfaceView

但是在这种情况下,相机会打开几秒钟然后消失,然后是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。 但这样,只会显示添加到framelayout的对象。

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

=============================================== ============================================ 任何为Android Camera和AndR“增强现实”中的初学者提供优秀教程的条款,或者为Android Camera和AndR“增强现实”的初学者推荐好书将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

IIRC是不可能的。曲面视图不能重叠。 (来自Diane Hackeborn的解释更长)