1.改清单文件

在你放置WebView的Activity的声明中加上以下代码:

android:hardwareAccelerated ="true"

android:configChanges="orientation|screenSize|keyboardHidden"

2.改Java类

1.对WebView进行初始化设置:

@JavascriptInterface

private void initWebView() {

WebSettings mWebSettings = mWebView.getSettings();

mWebSettings.setSupportZoom(true);

mWebSettings.setLoadWithOverviewMode(true);

mWebSettings.setUseWideViewPort(true);

mWebSettings.setDefaultTextEncodingName("utf-8");

mWebSettings.setLoadsImagesAutomatically(true);

mWebSettings.setBlockNetworkImage(false);//解决图片不显示

mWebSettings.setTextZoom(100);//设置默认缩放比例,防止网页跟随系统字体大小变化

//待定项目@{

mWebSettings.setAllowFileAccess(true);

mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);

mWebSettings.setDomStorageEnabled(true);// 必须保留,否则无法播放优酷视频,其他的OK

try {

if (Build.VERSION.SDK_INT >= 16) {

Class clazz = mWebSettings.getClass();

Method method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class);

if (method != null) {

method.invoke(mWebSettings, true);

}

}

} catch (Exception e) {

e.printStackTrace();

}

mWebSettings.setPluginState(WebSettings.PluginState.ON);

CookieManager cookieManager = CookieManager.getInstance();

cookieManager.setAcceptCookie(true);

//@}

//调用JS方法.安卓版本大于17,加上注解 @JavascriptInterface

mWebSettings.setJavaScriptEnabled(true);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

mWebSettings.setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

}

mWebView.setWebChromeClient(webChromeClient);

}

标明待定项目的属性设置可有可无,不影响本文说的功能实现。智汇代理申请

2.实现chrome代理:

WebChromeClient webChromeClient = new WebChromeClient() {

WebChromeClient.CustomViewCallback mCallback;

@Override

public void onShowCustomView(View view, CustomViewCallback callback) {

fullScreen();

mCallback = callback;

super.onShowCustomView(view, callback);

}

@Override

public void onHideCustomView() {

fullScreen();

super.onHideCustomView();

}

};

private void fullScreen() {

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

LogUtil.i(TAG+" 横屏");

} else {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

LogUtil.i(TAG+" 竖屏");

}

}

3.重写onConfigurationChanged方法:

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

switch (newConfig.orientation) {

case Configuration.ORIENTATION_LANDSCAPE:

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

break;

case Configuration.ORIENTATION_PORTRAIT:

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

break;

}

}

OK,按照以上步骤粘贴完之后就大功告成了!你可以在直播平台里复制一个链接到该页面去打开,然后点击全屏观看直播测试一下。

更多相关文章

  1. android通过读取系统属性设置字体缩放的默认值
  2. Android 窗帘(Curtain Menu)效果五之应用场景和使用方法
  3. android 获取路径目录方法 以及 获取路径方法
  4. Linux系统下安装android sdk的方法步骤
  5. 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决 (an
  6. 选项卡使用方法二(Android学习随笔十三)
  7. 使用AndroidStudio编译NDK的方法及错误解决方式
  8. Android Studio 配置快捷方式生成JNI头文件的方法
  9. android 读取DDMS里的文件时打不开,解决方法

随机推荐

  1. Android(安卓)底部导航栏BottomNavigatio
  2. android设置系统图标后手机上不显示出来
  3. Android中的数据结构
  4. Android里handler线程间的通信详解
  5. 通过Android的okhttp接口访问网络接口
  6. android ndk ant build提示 taskdef clas
  7. Android 交叉编译 Linux 可执行文件
  8. android摄像头翻转90度(二维码扫描)
  9. Android SDK Setup如何使用?-----Android
  10. Android(安卓)ImageView.ScaleType详解