開發中當使用SwipeBackActivity進行滑動返回后,發現一個奇葩的問題,將Activity底色設為透明后VideoView也變透明了,而且是無視父布局區域的。
這里我自己提供了一個解決辦法:
為VideoView設置背景色,這樣可以避免透明的問題,但是同時圖像也被掩蓋了(坑爹)。這里就需要我們對視頻進行判斷,而VideoView的判斷機制是很坑爹的,需要在onPRepared()方法中進行判斷,并且就算onPrepared回調了也不能保證視頻開始播放,僅僅代表視頻準備完畢。這樣就需要判斷用戶開始播放視頻的時間以及視頻結束時再將背景色設置回來,特別是當網絡不好的時候,需要判斷的情況很多,一不小心就會出問題。
所以又在網上找了很多相關的帖子,最終終于找到一個相對好的解決方法:
videoView.setZOrderOnTop(true);
因為VideoView 繼承于SurfaceView,而SurfaceView會出現黑屏或者透明的問題。這個方法是將SurfaceView挪到上層。這樣就能簡單的避免透明的發生。
轉載自:http://blog.csdn.net/EdisonChang/article/details/52087248
新聞熱點
疑難解答