android webview 播放视频 全屏问题

根据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如下:

android webview 播放视频 全屏问题_第1张图片

当然还有些注意事项:
例如在对应的activity下加上如下代码:

android:hardwareAccelerated=”true”
android:configChanges=”orientation|screenSize”

最后当然是demo链接地址:
http://download.csdn.net/detail/sunluyao_/9660161

你可能感兴趣的:(Android)