0

画面を押した場所に応じて正方形をレンダリングするGLsurfaceViewを作成しました。別のレイアウトの上に表示したい。透明にするために、次のように呼び出します。

    setEGLConfigChooser(8,8,8,8,16,0);
    mRenderer = new SlidingRenderer();
    setRenderer(mRenderer);
    getHolder().setFormat(PixelFormat.TRANSLUCENT);

私のレンダラーでは:

 public void onDrawFrame(GL10 gl){

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

ただし、描画した正方形の色も変更され、半透明に見えるようにもなります。

前:

前の写真

後:

前の写真

4

1 に答える 1

0

TRANSLUCENTあいまいなピクセル形式の記述子であり、その定義そのものにより、システムは自由に選択できますRGBA_4444またはRGBA_8888.

条件を満たす最小ピクセル形式を選択するようにシステムが構成されている可能性が非常に高いです。PixelFormat.TRANSLUCENTこれらの条件は次のとおりです。

システムは半透明性をサポートする形式を選択します (多くのアルファ ビット)

おそらく EGL ピクセル形式と一致させたいので、PixelFormat.RGBA_8888代わりにPixelFormat.TRANSLUCENT.

于 2013-09-09T19:36:58.343 に答える