2012-09-26 55 views
0

我有一個帶有RelativeLayout的Android應用程序,我通過編程方式添加了多個VideoView,所有這些都在同一時間播放。 VideoView可以通過拖動來移動,並且可以移動它們以便它們重疊。如何在Android中以編程方式更改VideoViews的z順序

問題是,我找不到在運行時更改它們的z順序的方法。 .bringToFront()將視圖置於前面以接收觸摸事件,但實際視頻的順序保持不變。

我試着通過.removeChild()刪除並重新添加videoView,但是停止並重置視頻。

有沒有辦法改變視頻的z順序? 「hacky」方式也可以起作用,例如,在不停止和重置視頻的情況下移除廣告重新添加視圖。

謝謝

P.S.這是一個流媒體視頻,所以重新啓動視頻到相同的位置將無法正常工作,會有太大的延遲。

編輯:即使人們建議多VideoViews不應該工作,他們做的工作很棒,甚至重疊,至少在我的Nexus S,ICS 4.0.3

編輯2:其實,不是很大,第二視頻有時會閃爍,但這對此目的很好。第三和第四個視頻不會閃爍,這有點不可思議

+1

最後我檢查了多個'VideoViews'根本不起作用。如果您還沒有這樣做,您可能希望花一些時間在各種硬件上進行測試,以確保您的方法在投入更多時間之前可靠。 – CommonsWare

+0

在Android中,如果某個設備上的某些功能很好用,那麼對於是否支持該功能,這並不意味着什麼。如果你不通過記錄的信息(即使那樣,那永遠絕對不是防彈的),我會在我認爲可能有效的事情之前在15個設備上進行測試。這只是Android。 – StackOverflowed

回答

0

VideoViews使用SurfaceView,女巫與窗口Z一致,但不能有多個SurfaceView z-ordered,因爲每個SurfaceView都會打一個洞在窗口上。如果您在同一區域添加多個視頻,視頻將無法正常播放。我曾經把視頻從屏幕上翻出來保持其狀態。在google play上尋找EcoNews aap。

1

document表示SurfaceView的Z順序是在它們連接到窗口之前確定的,並且它們的順序一旦連接就不會改變。由於VideoView的也是SurfaceView,我不認爲這是可能的。

相關問題