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_4444RGBA_8888.

很有可能系统配置为选择满足您条件的最小像素格式。对于PixelFormat.TRANSLUCENT这些条件是:

系统选择支持半透明的格式(许多 alpha 位)

由于您可能想要匹配您的 EGL 像素格式,请尝试PixelFormat.RGBA_8888使用PixelFormat.TRANSLUCENT.

于 2013-09-09T19:36:58.343 回答