2012-01-24 2 views
5

Я до сих пор не нашли правильный способ показать OPENGL наложения Ун верхней части камеры предварительного просмотра,OpenGL наложение на изображение с камеры

Там есть хак, где вы звоните

setContentView(GLSurfaceView) 
addContentView(MyCameraSurfaceView) 

но это Безразлично» t работать правильно - то есть, когда вы переключаетесь на другую работу и возвращаетесь назад, слой opengl не отображается над просмотром камеры.

есть много учебных пособий и образцов, которые используют вышеупомянутый метод, но он просто не работает, как ожидалось

Кто-нибудь знает, как они это делают в Layar

ответ

9

Похоже, я нашел решение моей проблемы - ее setZOrderMediaOverlay функции, Heres моего кода:

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

ли вы когда-нибудь задумывались, что когда переключаясь на другую деятельность, вы теряете контекст opengl из перекрывающейся gl-поверхности?

+0

Это не проблема - я создал оба представление с 150 запаса Д.П., один выравнивание по правому краю, а остальные выровнены по левому краю, и оба они там, где хорошо, но вид камеры был поверх GLSurvaceView. К счастью, я думаю, что нашел решение - см. Мой ответ. – imbryk

 Смежные вопросы

  • Нет связанных вопросов^_^