您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
surfaceView的顯示與隱藏
发布时间:2021-06-30 21:23:00编辑:雪饮阅读()
在安卓中如果有用最靈活的視頻播放,則就是surfaceView實現的。
那麽有這樣一個應用場景,就是我想要通過一個按鈕比如叫做“選擇一個視頻”,該按鈕會調用出一個dialog去從一個視頻列表選擇一個視頻后,在當前界面載入。
像是如下這樣
但是呢,一般的做法就是在當前界面先隱藏一個surfaceView,用setVisibility(View.GONE)或者直接在佈局上面寫。
但是你會發現,當你視頻文件選擇之後,讓其重新顯示的時候就不能正常顯示出來了。
這裏要采用如:
sv_with_ds.getChildAt(0).setVisibility(View.VISIBLE);
sv_with_ds.setVisibility(View.VISIBLE);
sv_with_ds.setVisibility(View.VISIBLE);
這裏我的surfaceview雖然沒有隱藏,但是其父級隱藏了,之前我直接讓父級顯示,但是surfaceView仍舊不顯示,對於這種情況下,要先讓surfaceView先顯示,雖然它本身沒有設置隱藏。
當然純粹的直接在surfaceView中進行隱藏和顯示,我沒有試過,那樣應該是可以的。
那麽對於surfaceView來説比較原生一些,經常很容易由於自己理解的不夠透徹而導致各種問題的發生。
最常見的就是其播放視頻必須要在getHolder所獲得的對象中添加一個回調,這個回調必須是實現了SurfaceHolder.Callback接口的,那麽在接口中的surfaceCreated才是正式處理視頻播放的。
关键字词:surfaceView