Add SurfaceView flash a black screen(動態添加SurfaceView導致黑一下屏)
最近工作需要,需要將一個VideoView動態添加到一個View上,但是出現了問題,第一次添加VideoView的時候,總是會全屏閃一下黑屏。搜了所有地方,都沒有合適的解答。查看了一下VideoView的源代碼,發現這個類從SurfaceView繼承而來。爲了排除和Video播放有關,我將一個最簡單的SurfaceView動態添加到一個View上。發現還是會閃一下黑屏,這下就排除了和video的關係。
爲了查這個問題,只好開啓WindowManagerService的debug模式,查看log,發現window的格式和SurfaceView的格式不一樣,被銷燬重建了。於是我在activity onCreate方法裏面,設置window和SurfaceView的格式,解決了這個問題,代碼如下:
getWindow().setFormat(PixelFormat.TRANSLUCENT);