我在一个activity中添加了一个LinearLayout,然后在LinearLayout上添加了一个自定义GLSurfaceView来实现一个3d效果,我想让我的该GLSurfaceView中除了绘制的物体,其它全部是透明的,也就是说它的背景是LinearLayout,参照官方demo中例子TranslucentGLSurfaceViewActivity,但是不能够实现,TranslucentGLSurfaceViewActivity中实现的是看到下面一个activity,而我想要的效果是GLSurfaceView透明看到下面一个view,不知道怎么实现,请教高手

解决方案 »

  1.   

    我也碰到类似问题。怎么做到:GLSurfaceView不盖住LinearLayout的背景图片?请教高手
      

  2.   

    已经解决。需要调用一下GLSurfaceView的方法setZOrderOnTop,LinearLayout的背景图片就能显示出来了
      

  3.   

    学习新技术随带问一下,你玩OPENGL在什么环境下玩?ANDROID模拟器?那个版本?1.6/2.2?还是在真机上玩?我在模拟器2.2下纹理都贴不上去啊!还没搞明白是怎么一回事.
      

  4.   

    模拟器2.2下纹理都贴不上去啊?
    我这个我已经搞定了,我最近比较忙,后面我写个blog你可以看看
      

  5.   

    我和你遇到一样的问题,我setZOrderOnTop了,但是还是不行,麻烦你帮我解决哈
      

  6.   

    mGLSurfaceView.setZOrderOnTop(true);
    mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);把上面这3句全加上就ok了。
      

  7.   

    mGLSurfaceView.setZOrderOnTop(true);
    mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);经实践,正确
      

  8.   

    为何我加
    mGLSurfaceView.setZOrderOnTop(true);
    mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
    就报错?
      

  9.   

    mGLSurfaceView.setZOrderOnTop(true);
    mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);中mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);这句要写在setRenderer(mRenderer);之前就不会报错了。