根據goole官方文檔給出的兩個函數可以結局這個問題,兩個函數如下:
onShowCustomView()和 onHideCustomView()
onShowCustomView函數:當前頁面進入全屏模式的時候會調用這個方法,並且返回了兩個參數。第一個是我們要在全屏模式時顯示的View,第二個是一個CustomViewCallBack接口
onHideCustomView函數:通知應用當前頁面已經關閉全屏模式,我們需要做的操作是隱藏之前onSHowCustomView()方法中取到的View。
其實,思路就出來了。我們在onShowCustomView(View view, CustomViewCallback callback)函數中把webview 隱藏,在把參數當中的view 添加到我們自己在xml定義的容器中,這樣不就實現了全屏。在onHideCustomView函數中,我們只需要做相反的操作,把webview顯示出來,把自己定義的容器隱藏。
只要代碼如下:
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
fullScreen();
webView.setVisibility(View.GONE);
videoContainer.setVisibility(View.VISIBLE);
isFull=true;
videoContainer.addView(view);
mCallBack=callback;
super.onShowCustomView(view, callback);
}
@Override
public void onHideCustomView() {
fullScreen();
if (mCallBack!=null){
mCallBack.onCustomViewHidden();
}
webView.setVisibility(View.VISIBLE);
videoContainer.removeAllViews();
videoContainer.setVisibility(View.GONE);
isFull=false;
super.onHideCustomView();
}
videoContainer 爲我自己定義的容器,xml如下:
當然還有些注意事項:
例如在對應的activity下加上如下代碼:
android:hardwareAccelerated=”true”
android:configChanges=”orientation|screenSize”
最後當然是demo鏈接地址:
http://download.csdn.net/detail/sunluyao_/9660161