6

こんにちは、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);

誰かが私が除外しているものについてアドバイスできますか?

4

2 に答える 2

3

コードが正しい場合は、追加することをお勧めします

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

(自分のビューが他のビューによって隠されていて、その上に表示する必要がある場合。)

于 2012-02-08T21:27:12.697 に答える
1

私もこれに問題がありました。glSurfaceView (およびその他) をオーバーレイするビューのアルファ値をトゥイーンすることで、画面全体を「フェードアウト」しようとしていました。他のビューはすべて色あせていますが、glSurfaceView はありません。

... glSurfaceViewsetZOrderMediaOverlay(true)ではなく、私にとってはうまくいったことがわかりました。setZOrderOnTop(true)

于 2013-03-17T00:19:30.530 に答える