如何以编程方式更改Android中VideoViews的z顺序

时间:2012-09-26 12:43:13

标签: android android-videoview z-order

我有一个带有RelativeLayout的Android应用程序,我以编程方式添加多个VideoView,所有这些都在同时播放。 VideoViews可以通过拖动来移动,并且可以移动它们以使它们重叠。

问题是我找不到在运行时更改它们的z顺序的方法。 .bringToFront()将视图置于前面以接收触摸事件,但实际视频的顺序保持不变。

我尝试通过.removeChild()删除并重新添加videoView,但这会停止并重置视频。

有没有办法更改视频的z顺序?一种“hacky”方式也可以,例如删除广告重新添加视图而不停止并重置视频。

由于

P.S。这是一个流媒体视频,因此将视频重新启动到同一位置是行不通的,会有太大的延迟。

编辑:尽管人们认为多个VideoView不起作用,但它们确实很好,甚至重叠,至少在我的Nexus S,ICS 4.0.3

编辑2:实际上,不是很好,第二个视频有时会闪烁,但这对于此目的来说没问题。第3和第4个视频不闪烁,这有点奇怪

2 个答案:

答案 0 :(得分:1)

document表示SurfaceView的Z顺序是在它们附加到窗口之前确定的,并且一旦附加它们的顺序就不会改变。由于VideoView也是SurfaceView,我认为不可能这样做。

答案 1 :(得分:0)

VideoViews使用SurfaceView,与Windows一起Z-ordered,但是你不能有多个SurfaceView z-ordered,因为每个SurfaceView都会在窗口上打一个洞。如果您在同一区域添加多个视频,视频将无法正常播放。我曾经在屏幕上翻译视频以保持其状态。在Google Play上寻找EcoNews aap。