参考:WebView 支持 Html5 video 进行全屏播放
主要方法: onShowCustomView() onHideCustomView()
@Override //全屏时调用
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
Log.d("MyInfo","onShowCustomView...");
if (mCustomView != null) {
callback.onCustomViewHidden();
return;
}
mCustomView=view;
mCustomView.setVisibility(View.VISIBLE);
mContentLayout.setVisibility(View.GONE);
mCustomViewCallBack = callback;
fl_video.addView(mCustomView);
fl_video.setVisibility(View.VISIBLE);
fl_video.bringToFront();
//全屏
//设置横屏
rootLayout.setBackground(ContextCompat.getDrawable(mContext,R.color.total_black));
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
@Override //退出全屏
public void onHideCustomView() {
super.onHideCustomView();
Log.d("MyInfo","onHideCustomView...");
if (mCustomView == null) {
return;
}
mCustomView.setVisibility(View.GONE);
mContentLayout.setVisibility(View.VISIBLE);
fl_video.removeView(mCustomView);
mCustomView = null;
fl_video.setVisibility(View.GONE);
mCustomViewCallBack.onCustomViewHidden();
rootLayout.setBackground(ContextCompat.getDrawable(mContext,R.color.white));
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
activity中
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
}
manifest中配置:
<activity android:name=".ui.train.TrainDetailActivity"
android:hardwareAccelerated="true"
android:configChanges="keyboardHidden|orientation|screenSize" />