我在应用中有两个表面视图,一个表面视图需要与另一个表面视图重叠。例如,假设SurfaceView A和SurfaceView B有两个表面视图.B需要位于A之上,这是通过在B上设置setZOrderOnTop(true)来实现的。
现在,我想在B顶部显示一些文字或按钮,但因为它将Z顺序设置为true,所以添加的文字或按钮不显示在顶部,而是显示在它下面。如果未设置setZOrderOnTop属性,则文本视图和按钮会显示在顶部,但B不会重叠A.
我已经尝试将SurfaceView B和textview或按钮放在FrameLayout中,但它仍然显示在B下。是否有一种方法可以将z顺序设置为true并且仍然可以将文本或按钮放在其上?
答案 0 :(得分:3)
我可以使用setZOrderMediaOverlay(true)
代替setZOrderOnTop
来解决此问题。
如果设置为true,方法setZOrderOnTop
将始终位于窗口的顶部。因此,为了在表面视图上使用叠加视图,应使用setZOrderMediaOverlay
。
有关详细信息,请参阅setZOrderMediaOverlay document here.