Наложить прозрачный GLSurfaceview на существующий вид в Android? - PullRequest
6 голосов
/ 06 апреля 2011

Привет. Я пытался наложить GLSurfaceview на существующее представление. Код ниже показывает, как я наложил.Единственное, что не работает, это прозрачность glsurfaceview сверху.

    view = new GLSurfaceView(this);

    view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    view.getHolder().setFormat(PixelFormat.TRANSLUCENT);

    view.setRenderer(new Level1Renderer(this));

    setContentView(R.layout.test);


    addContentView(view, new LayoutParams(100,400));

Затем я установил цвет фона в моем рендерере как

        gl.glClearColor(0.0f, 0.0f, 0.0f, 0);

Может кто-нибудь посоветовать мне, какчто я оставляю вне дома?

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

код правильный, вы можете добавить

glView.setZOrderOnTop(true);
glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

(если ваш вид скрыт другим видом и вам нужен он сверху).

1 голос
/ 17 марта 2013

У меня тоже была проблема с этим.Я пытался «затухать» весь мой экран, изменяя альфа-значения представления, перекрывающего glSurfaceView (плюс другие).Другие представления все исчезли, но не glSurfaceView.

Я обнаружил, что setZOrderMediaOverlay(true) ... вместо setZOrderOnTop(true) в glSurfaceView работает для меня.

...