GLSurfaceView,SurfaceView中出现暂停、播放等UI遮挡问题.

GLSurfaceView,SurfaceView之上往往有添加播放、暂停、进度等UI,有时候会出现UI不显示(有时候UI要求可以拖动到最左侧或者最右侧,再拖动过程中必然会出现UI遮挡问题),但是点击事件存在,网上很多解决方案是:surfaceView.setZOrderOnTop(true),或者同时setZOrderMediaOverlay(true),或者设置surfaceView背景透明getHolder().setFormat(PixelFormat.TRANSLUCENT);但是发现还是不能解决问题。那么请看下面:


首先个人觉得setZOrderOnTop是把surfaceview放在最顶端,这样不符合要求,因为UI始终是在最顶端的

所以:考虑往UI层和SurfaceView层添加一层,并且把添加的那一层背景设置为透明色,则可完美解决问题.或者直接用一个layout包裹住你的所有UI,

然后给这个layout设置背景色为透明.


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GLSurfaceView是一种基于OpenGL ES的SurfaceView,它可以用于实现复杂的图形和动画效果,并且支持透明背景。相比于SurfaceViewGLSurfaceView可以更好地处理复杂的图形和动画效果,因为它可以使用OpenGL ES的硬件加速来提高性能和效率。 GLSurfaceView使用方法与SurfaceView类似,只需要继承GLSurfaceView并实现Renderer接口即可。Renderer接口定义了OpenGL ES的渲染方法,用于在GLSurfaceView绘制图形和动画效果。 以下是一个简单的GLSurfaceView的实现示例: ```java public class MyGLSurfaceView extends GLSurfaceView implements Renderer { private Square mSquare; public MyGLSurfaceView(Context context) { super(context); setEGLContextClientVersion(2); // 设置OpenGL ES版本为2.0 setRenderer(this); // 设置Renderer setRenderMode(RENDERMODE_CONTINUOUSLY); // 设置渲染模式为连续模式 } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 设置清屏颜色 mSquare = new Square(); // 创建一个正方形对象 } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { GLES20.glViewport(0, 0, width, height); // 设置视口大小 } @Override public void onDrawFrame(GL10 gl) { GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); // 清空颜色缓冲区 mSquare.draw(); // 绘制正方形对象 } } ``` 在上述示例,Square表示一个正方形对象,它的绘制方法由OpenGL ES实现。通过GLSurfaceView的onSurfaceCreated()、onSurfaceChanged()和onDrawFrame()方法,我们可以在GLSurfaceView绘制出复杂的图形和动画效果。 总之,GLSurfaceView是一个更加强大和灵活的SurfaceView,可以用于实现复杂的图形和动画效果,并且能够更好地处理透明背景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值