我有 2SurfaceViews
和 1 button
,它们需要以类似于所附屏幕截图的方式排列。我能够SurfaceView B
通过SurfaceView A
调用surfaceViewB.setZOrderOnTop(true);
问题是,一旦我这样做了,SurfaceView B
它就会被放置在实际的 Window 之上,并且我不再能够让 Button 位于它之上(例如,button.bringToFront()
在这里调用是无用的)。
知道如何实现这种布局吗?
我有 2SurfaceViews
和 1 button
,它们需要以类似于所附屏幕截图的方式排列。我能够SurfaceView B
通过SurfaceView A
调用surfaceViewB.setZOrderOnTop(true);
问题是,一旦我这样做了,SurfaceView B
它就会被放置在实际的 Window 之上,并且我不再能够让 Button 位于它之上(例如,button.bringToFront()
在这里调用是无用的)。
知道如何实现这种布局吗?
您可以使用setZOrderMediaOverlay(boolean)
将 SurfaceView B 放在 SurfaceView A 上,但仍位于窗口后面。来自文档:链接:
公共无效 setZOrderMediaOverlay(布尔 isMediaOverlay)
控制表面视图的表面是否放置在窗口中另一个常规表面视图的顶部(但仍位于窗口本身的后面)。这通常用于将叠加层放置在底层媒体表面视图的顶部。
请注意,这必须在表面视图的包含窗口附加到窗口管理器之前设置。
调用它会覆盖之前对 setZOrderOnTop(boolean) 的任何调用。
因此,以下内容应该适合您:
surfaceViewB.setZOrderMediaOverlay(true);