我的理解是你不能在 Android 中叠加两个表面 View ,基于这个讨论:
https://groups.google.com/forum/?fromgroups=#!topic/android-developers/COffLpanlz0
进一步证明这不起作用:GLSurfaceView/SurfaceView overlap
但是我想知道这里是否有解决方法?或者,如果 Android 4.1 改变了这一点?
谷歌框架工程师的唯一建议如下所示:有谁知道这将如何完成?或者是否有任何其他方法可以实现此目的?
"这可能不是最好的方法,但现在您根本无法在一个窗口中拥有多个重叠的表面 View ,因此实现此目的的唯一方法是在主窗口中渲染叠加层。仅供引用,使用单独的线程postInvalidate() 是不需要的额外工作,只需从主线程调用 invalidate() 即可。您需要确保至少 View 层次结构中涉及绘制叠加层的部分尽可能简单(不深,也没有很多 View 需要迭代)以尽可能减少开销。” - 显示引用的文字 - hac...@android.com
最佳答案
对于 Android 4.0 及更高版本,您应该改用 TextureView。您可以将任意数量的 TextureView 堆叠在一起。您还可以为它们设置动画等。
关于android - 不能将 GLSurfaceView 放在 SurfaceView 上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556516/