Add SurfaceView flash a black screen

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);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章