【问题标题】:opengl overlay on camera view相机视图上的opengl覆盖
【发布时间】:2012-01-24 11:59:02
【问题描述】:

我仍然没有找到在相机预览顶部显示 opengl 叠加层的正确方法,

有一个黑客,你打电话的地方

setContentView(GLSurfaceView)
addContentView(MyCameraSurfaceView)

但它不能正常工作 - 即当您切换到另一个活动并返回时,opengl 层不会显示在相机预览上。

使用上述方法的教程和示例很多,但它根本无法按预期工作

有谁知道他们在layar是怎么做的

【问题讨论】:

    标签: android camera opengl-es-2.0 android-camera


    【解决方案1】:

    看起来我找到了解决问题的方法 - 它的 setZOrderMediaOverlay 函数,这是我的代码:

    private void initViews()
    {
        mFrame = new FrameLayout(this);
        initCameraView();
        initGLView();
        setContentView( mFrame );
    }
    private void initGLView()
    {
        mRenderer = new MyGLRenderer( this );
        mGLView = new GLSurfaceView(this);
        mGLView.setZOrderMediaOverlay(true);
        mGLView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
        mGLView.setRenderer(mRenderer); 
        mGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
    
        mFrame.addView( mGLView );      
    }
    
    private void initCameraView()
    {
        mCameraSurfaceView = new CameraSurfaceView(this);
        mFrame.addView(mCameraSurfaceView);     
    }
    

    【讨论】:

      【解决方案2】:

      你有没有想过,当切换到另一个活动时,你会从覆盖的 glsurface 中丢失 opengl 上下文?

      【讨论】:

      • 这不是问题 - 我创建了两个视图,边距为 150 dp,一个右对齐,另一个左对齐,两者都可以,但相机视图位于 GLSurvaceView 上方。幸运的是,我认为我已经找到了解决方案 - 请参阅我的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多