之前公司要求的一个项目需要播放网络视频,给的是HTML的地址,所以只能用webView播放,但是,播放的时候点击自带的全屏按钮根本没反应,准确说是只有图标变化了,但是根本没有全屏。在网上找了好多资料,博客什么的,都不能解决!于是本人突发奇想,但我点击一个按钮或者一个图标的时候强制当前的Activity横屏充满,不就可以解决了么。于是,不幸的是,我成功了,哈哈!

接下来给大家详细步骤,播放什么代码我就不写了,就是全屏。

首先,在全局声明一个Boolean值,用来判断是否全屏;两个int值,分别是手机屏幕的宽高

private boolean isAll = false;
private int width;
private int height;

因为改变横屏后,我们webview的宽高得重新设置,所以需要获取手机的宽高,为了方便使用,我在初始化控件的方法中赋值:

public void initView(){DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);width = metric.widthPixels;     // 屏幕宽度(像素)
    height = metric.heightPixels;   // 屏幕高度(像素)

//下面两句代码是初始化控件,根据实际情况改变
    web_play = (WebView) findViewById(R.id.web_play);btn_all = (Button) findViewById(R.id.btn_all);
}

然后在你点击触发事件的方法中写全屏代码,这里用Button举例:

btn_all.setOnClickListener(new View.OnClickListener() {@Override
    public void onClick(View view) {
//判断是否全屏,如果不是全屏则进行以下操作if(!isAll){
//记得进来后要给Boolean重新赋值,因为这个是全屏操作和退出全屏的判断条件
            isAll = true;
//强制activity横屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//获取控件所在的布局RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) web_play.getLayoutParams();
//修改布局中的height,width属性
//这里解释一下,因为你的手机横放过来了,所以,webview的高度其实是你手机的宽度,以此类推params.width = height;params.height = width;
//重新设置修改后的布局给控件web_play.setLayoutParams(params);}}
});

当写到这里的时候,已经可以实现横屏全屏了,当然,如果你的布局中还有别的控件,你可以隐藏掉只显示webView

接下来是当点击手机返回键执行的操作,应该是全屏模式,退出全屏,不是全屏返回上一页

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if(isAll){setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) web_play.getLayoutParams();params.width = width;params.height = height/3;web_play.setLayoutParams(params);isAll = false;}else {web_play.loadUrl("about:blank");PlayActivity.this.finish();}}return false;
}

重写onKeyDown这个方法,判断用户点击的是不是返回键,如果是,继续判断当前是否全屏,这时候我们定义在全局的Boolean值就用上了,如果是true,说明是全屏

,那么则让activity竖过来,重新设置宽高,这个时候的宽高就是对应的手机的宽高,当然,高度多少你自己可以定义。设置完之后记得改变Boolean变量的值,变为false,否则你下次就不能全屏了!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

好了,以上就是我的解决方案,可以完美的解决全屏的问题。如果小伙伴发现了什么bug记得给我留言。

其实这并不是严格意义上的全屏,但是可以满足用户的需要,如果你取到的视频资源是.mp4结尾的,那么就不用这样了,直接用播放器就好了!

第一次写博客,写的不好,希望大家多多见谅!

关于Android中使用WebView播放网络视频不能全屏的问题相关推荐

  1. android:自己实现能播放网络视频url的播放器

    2019独角兽企业重金招聘Python工程师标准>>> android原生自带的播放器一般只能播放本地视频,而没有播放url的功能.不过android系统中有一个VideoView的 ...

  2. android播放网页视频播放器下载,android:自己实现能播放网络视频url的播放器

    android原生自带的播放器一般只能播放本地视频,而没有播放url的功能.不过android系统中有一个VideoView的控件可以实现这一功能. 简单实现如下: public class MyVi ...

  3. android 系统播放器播放https,android:自己实现能播放网络视频url的播放器

    android原生自带的播放器一般只能播放本地视频,而没有播放url的功能.不过android系统中有一个VideoView的控件可以实现这一功能. 简单实现如下: public class MyVi ...

  4. html5--移动端视频video的android兼容,去除播放控件、全屏等

    android下html5的视频播放一直是前端兼容的重灾区,各种体验差,被诟病已久.但之前的故宫穿越H5,和吴亦凡入伍H5,利用的视频技术,貌似又给人一种新面貌. 前段时间做某项目,恰好也是一个类似视 ...

  5. android webView 全屏播放网络视频

    1.webView播放网络视频时,有些视频源点击全屏时无反应,经过反复查验探索,原因是某些厂商写的页面不规范导致. 通过阅读官方文档得知  应用如果需要支持HTML5的video标签,必须打开硬件加速 ...

  6. WebView网页视频统一全屏播放及横竖屏切换

    WebView 支持 Html5 video 进行全屏播放及横竖屏自动切换 1.检查AndroidManifest.xml清单文件,WebView控件所在的Activity配置信息;检查Activit ...

  7. Android的WebView如何播放视频和全屏视频(腾讯X5内核)

    WebView如何播放视频和全屏视频 前言 1. 接入SDK 2. 具体场景和代码实现 3. 踩坑 3.1 android.system.ErrnoException: chmod failed: E ...

  8. Android VideoView无法播放网络视频

    今天学习Android播放视频和音频,其中在练习播放视频的时候无法播放网络视频,网络视频是别人发布在网上的,但是把视频放在本地是可以的,最后推测是没有开放网络的访问权限的问题,果然开放了之后就能正常访 ...

  9. android视频自动旋转,Android 使用PLDroidPlayer播放网络视频 根据视频角度自动旋转...

    最近因为项目需求 ,需要播放网络视频 ,于是乎 研究了一番 ,说说我遇到的那些坑 现在市面上有几个比较主流好用的第三方框架 当然还有很多别的视频播放框架 因为我只找到这几个= =! 因为项目比较急,所 ...

最新文章

  1. 《梦断代码》读书笔记
  2. Android演示Stack(课下作业)
  3. redis scan命令详解
  4. ​人工智能的底层构架,认识HBase数据模型
  5. mybatis将字段改为null_【MyBatis入门到入土精讲】MyBatis介绍
  6. 多功能网页刷新助手(刷PV)
  7. Tomcat 内存溢出问题与解决方法
  8. 微机原理是微型计算机与接口技术吗,《微机原理与接口技术》课程教学大纲
  9. MacVim配置文件
  10. AcWing 95. 费解的开关(推理)
  11. .ipynb文件怎么打开_Mac应用程序无法打开提示不明开发者或文件损坏怎么对待呢?
  12. 多硬盘分区管理fdisk
  13. 【Mac 系列】Mac安装Mysql
  14. Live800:教育行业新拐点,在线客服系统如何提供价值?
  15. 2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结
  16. 流畅chatbot采样
  17. LintCode python入门题
  18. 永磁同步电机滞环电流控制
  19. ubuntu16.04安装vmware后集成显卡如何开启3D加速的问题解决思路
  20. python批量打印网页_用Python批量打印定制的HTML页面

热门文章

  1. 计算机开机桌面黑屏怎么办,启动电脑却发现屏幕黑屏,怎么解决?
  2. 基于大数据的模型预测用户是否会进行交易 文档+答辩PPT+Python源码及数据
  3. obs 推流编码在哪设置_OBS Studio基本设置
  4. 竞赛题-6283. 正整数和负整数的最大计数
  5. Python pygame,精灵和精灵组
  6. mysql慢sql分析平台_慢SQL分析工具 - __KK的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. 如何将单线程爬虫改成多线程
  8. 直角三角形面积Java_利用Eclipse编写第一个简单的Java程序,实现如下功能。 键盘输入:直角三角形两直角边a, b,根据勾股定理计算斜边的平方值。并输出。 例如:运行效果如下...
  9. 5个流行的开源HIDS系统介绍
  10. 计算机大赛的英语怎么说,最全英语奖项 比赛名称翻译.doc