我之前问过这个问题,但没有得到回复,所以我再试一次。
我需要在Motorola Xoom,Android 3.0上做一个渲染的2D图片,并附带一些标签和图形。虽然只使用SurfaceView(Canvas)或只使用GLSurfaceView就可以完成我需要的功能,但我真的想同时使用两者,因为GLSurfaceView的渲染速度更快,而SurfaceView的标注和图形更容易。视觉布局如下所示。
我尝试通过在GLSurfaceView之后在layout XML中声明SurfaceView来将其置于顶部。 SurfaceView是透明的(除了我明确绘制的内容),因此仍然可以看到GLSurfaceView。
这种方法效果不错,但有一个很大的例外。我在SurfaceView上绘制的任何位于GLSurfaceView区域内的内容都完全不会显示出来。为了验证这一点,我在边界上绘制了一些文本(一些在共享区域中,一些仅在SurfaceView区域中),结果在GLSurfaceView边界处被切掉了。我已经尝试使用“bringToFront”方法来解决这个问题,但它没有起作用。
有人能给我一些关于为什么这不起作用或我该怎么做的想法吗?是因为GLSurfaceView在前面,还是因为GLSurfaceView直接写入视频内存,所以无论前面有什么都无所谓?
我需要在Motorola Xoom,Android 3.0上做一个渲染的2D图片,并附带一些标签和图形。虽然只使用SurfaceView(Canvas)或只使用GLSurfaceView就可以完成我需要的功能,但我真的想同时使用两者,因为GLSurfaceView的渲染速度更快,而SurfaceView的标注和图形更容易。视觉布局如下所示。
![SurfaceView/GLSurfaceView visual layout](https://istack.dev59.com/Dmb5J.webp)
这种方法效果不错,但有一个很大的例外。我在SurfaceView上绘制的任何位于GLSurfaceView区域内的内容都完全不会显示出来。为了验证这一点,我在边界上绘制了一些文本(一些在共享区域中,一些仅在SurfaceView区域中),结果在GLSurfaceView边界处被切掉了。我已经尝试使用“bringToFront”方法来解决这个问题,但它没有起作用。
有人能给我一些关于为什么这不起作用或我该怎么做的想法吗?是因为GLSurfaceView在前面,还是因为GLSurfaceView直接写入视频内存,所以无论前面有什么都无所谓?