【问题标题】:Display two Surface Views over each other?相互显示两个表面视图?
【发布时间】:2012-04-25 07:34:02
【问题描述】:

有没有办法将两个表面视图相互设置,以便其中一个保存 CameraPreview,另一个保存 OpenGL 表面。

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

代码 1 1-在这段代码中,我使用第 1 行中提到的命令打开相机 2- 从渲染类实例化一个对象,并将这个对象添加到 使用 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。 但这种方式只会显示添加到框架布局中的对象。

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“增强现实”初学者推荐好书的任何规定都将受到高度赞赏。

【问题讨论】:

  • 您找到解决方法了吗?我遇到了同样的问题

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


【解决方案1】:

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

【讨论】:

  • 什么是 IIRC? Diane Hackeborn 的那篇文章或书的标题是什么?
  • 如果我没记错的话 - Diane 是一名谷歌工程师,与社区有很好的联系。谷歌一下就行了。
猜你喜欢
  • 2017-05-04
  • 2016-06-13
  • 1970-01-01
  • 2020-06-13
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2022-06-10
相关资源
最近更新 更多