1

我有 2SurfaceViews和 1 button,它们需要以类似于所附屏幕截图的方式排列。我能够SurfaceView B通过SurfaceView A调用surfaceViewB.setZOrderOnTop(true);

问题是,一旦我这样做了,SurfaceView B它就会被放置在实际的 Window 之上,并且我不再能够让 Button 位于它之上(例如,button.bringToFront()在这里调用是无用的)。

知道如何实现这种布局吗?在此处输入图像描述

4

1 回答 1

1

您可以使用setZOrderMediaOverlay(boolean)将 SurfaceView B 放在 SurfaceView A 上,但仍位于窗口后面。来自文档:链接

公共无效 setZOrderMediaOverlay(布尔 isMediaOverlay)

控制表面视图的表面是否放置在窗口中另一个常规表面视图的顶部(但仍位于窗口本身的后面)。这通常用于将叠加层放置在底层媒体表面视图的顶部。

请注意,这必须在表面视图的包含窗口附加到窗口管理器之前设置。

调用它会覆盖之前对 setZOrderOnTop(boolean) 的任何调用。

因此,以下内容应该适合您:

surfaceViewB.setZOrderMediaOverlay(true);
于 2013-11-05T06:57:05.023 回答