opengl覆盖在相机视图上

imb*_*ryk 5 camera android android-camera opengl-es-2.0

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

有一个黑客,你打电话

setContentView(GLSurfaceView)
addContentView(MyCameraSurfaceView)
Run Code Online (Sandbox Code Playgroud)

但它无法正常工作 - 即当您切换到其他活动并返回时,opengl图层不会显示在相机预览上.

有很多使用上述方法的教程和示例,但它根本无法正常工作

有没有人知道他们是如何做到的

imb*_*ryk 9

看起来我找到了我的问题的解决方案 - 它的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);     
}
Run Code Online (Sandbox Code Playgroud)