<code>
public
class
MainActivity
extends
AppCompatActivity {
static
final
String iframeStr =
"<iframe frameborder=\"0\" width=\"640\" height=\"498\" src=\"http://v.qq.com/iframe/player.html?vid=v0151eygqka&tiny=0&auto=0\" allowfullscreen></iframe>"
;
private
WebView videoWebView;
private
FrameLayout fullScreenView;
private
View customView;
@Override
protected
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fullScreenView = (FrameLayout) findViewById(R.id.video_fullscreen);
videoWebView = (WebView) findViewById(R.id.webView);
WebSettings settings = videoWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setDatabaseEnabled(true);
settings.setAppCacheEnabled(true);
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
settings.setPluginState(WebSettings.PluginState.ON);
settings.setAllowFileAccess(true);
settings.setLoadWithOverviewMode(true);
settings.setDomStorageEnabled(true);
settings.setUseWideViewPort(true);
videoWebView.setWebChromeClient(
new
MyWebChromeClient());
videoWebView.setWebViewClient(
new
MyWebViewClient());
videoWebView.loadData(iframeStr,
"text/html"
,
"utf-8"
);
}
class
MyWebViewClient
extends
WebViewClient{
@Override
public
boolean shouldOverrideUrlLoading(WebView view, String url) {
return
false;
}
}
class
MyWebChromeClient
extends
WebChromeClient{
private
CustomViewCallback customViewCallback;
@Override
public
void onShowCustomView(View view, CustomViewCallback callback) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
videoWebView.setVisibility(View.INVISIBLE);
if
(customView != null) {
callback.onCustomViewHidden();
return
;
}
fullScreenView.addView(view);
customView = view;
customViewCallback = callback;
fullScreenView.setVisibility(View.VISIBLE);
}
@Override
public
void onHideCustomView() {
if
(customView == null)
return
;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
customView.setVisibility(View.GONE);
fullScreenView.removeView(customView);
customView = null;
fullScreenView.setVisibility(View.GONE);
customViewCallback.onCustomViewHidden();
videoWebView.setVisibility(View.VISIBLE);
}
}
@Override
protected
void onResume() {
super.onResume();
if
(getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
videoWebView.resumeTimers();
}
@Override
protected
void onPause() {
super.onPause();
videoWebView.pauseTimers();
}
@Override
protected
void onDestroy() {
super.onDestroy();
videoWebView.destroy();
}
}
</code>