2012-01-24 80 views
5

我還沒有找到一個合適的方式來顯示相機預覽的一個OpenGL覆蓋OON頂部,的OpenGL覆蓋

有一個黑客,你叫

setContentView(GLSurfaceView) 
addContentView(MyCameraSurfaceView) 

,但它不」 t正常工作 - 即當您切換到其他活動並返回時,opengl圖層不會顯示在相機預覽上。

有大量的教程和使用上述方法的樣本,但它只是作爲預期

沒有人知道他們是如何做到這一點在拉亞

回答

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);  
} 
0

你有沒有考慮過,當不工作切換到另一個活動,你正在從重疊glsurface丟失opengl上下文?

+0

這不是問題 - 我創造了150 DP保證金兩種觀點,一個右對齊,另一個左對齊,並且兩個都可以,但相機視圖已經在GLSurvaceView上。幸運的是,我認爲我找到了解決方案 - 請參閱我的答案。 – imbryk