需求是全屏播放视频,刘海屏上面也要播放。

下面是我实现的方式:

首先创建 CustomVideoView 工具类:

import android.annotation.TargetApi;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.VideoView;/*** Name: 吴庆森* Date: 2019/7/9* Mailbox: 1243411677@qq.com* Describe:*/
public class CustomVideoView extends VideoView {public CustomVideoView(Context context) {super(context);}public CustomVideoView(Context context, AttributeSet attrs) {super(context, attrs);}public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@TargetApi(21)public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {//int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);//int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);setMeasuredDimension(widthSpecSize, heightSpecSize);}
}

然后在xml文件中应用:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ceshi.com.myapp.utils.CustomVideoViewandroid:id="@+id/videoPlay"android:layout_width="match_parent"android:layout_height="match_parent" />
</RelativeLayout>

最后在 activity 中使用:

import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v4.app.FragmentActivity;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;import ceshi.com.myapp.R;
import ceshi.com.myapp.utils.CustomVideoView;/*** Name: 吴庆森* Date: 2019/7/9* Mailbox: 1243411677@qq.com* Describe:*/
public class VideoActivity1 extends FragmentActivity {CustomVideoView videoPlay;@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setInit();getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.video_activivy1);videoPlay = findViewById(R.id.videoPlay);DisplayMetrics dm = new DisplayMetrics();//获取屏幕信息(单位:px)getWindowManager().getDefaultDisplay().getMetrics(dm);int screenWidth = dm.widthPixels;int screenHeigh = dm.heightPixels;int notificationBar = Resources.getSystem().getDimensionPixelSize(Resources.getSystem().getIdentifier("status_bar_height", "dimen", "android"));//30dp转化为pxfinal float scale = getResources().getDisplayMetrics().density;//由30dp转化来的pxint px = (int) (notificationBar * scale + 0.5f);//动态设置控件宽高ViewGroup.LayoutParams params = videoPlay.getLayoutParams();params.height = screenHeigh + (px);params.width = screenWidth ;videoPlay.setLayoutParams(params);videoPlay.setVideoPath("https://vdse.bdstatic.com/90bbe567a344884644b7046ba4b9906e.mp4?authorization=bce-auth-v1%2F40f207e648424f47b2e3dfbb1014b1a5%2F2017-05-11T09%3A02%3A31Z%2F-1%2F%2F1addef5f6cf2e56204e1f49e982c26e425b0fb9d9f845231bd7db8c541dcaeee");videoPlay.start();}@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)private void setInit() {//沉浸状态栏getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);getWindow().setStatusBarColor(Color.TRANSPARENT);//设置页面全屏显示WindowManager.LayoutParams lp = getWindow().getAttributes();lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;//设置页面延伸到刘海区显示getWindow().setAttributes(lp);}
}

这样就可以全屏幕播放视频了,但是视频会有一定的拉伸。

Android全屏播放视频~包括刘海屏、隐藏时间状态栏相关推荐

  1. [RK3399][Android7.1] 调试笔记 --- 闪电浏览器全屏播放视频时黑屏

    Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 使用默认闪电浏览器全屏播放视频时黑屏, error log如下: 08-09 17:19:45 ...

  2. android 4.0以上WebView不能全屏播放视频的解决办法

    上次鄙人做了一个简单的利用webView实现的一个浏览器!其中遇到了两个问题,一个是将浏览器中需要下载的内容托管到系统默认的下载程序进行下载,这个比较简单就不在这里讨论了:另一个问题就是我们的Andr ...

  3. 记一次微信H5全屏播放视频的总结

    一.H5场景介绍 需求:在微信里打开一个H5页面,然后点击按钮全屏播放视频,等视频播放完成后,在视频上显示一个跳转按钮,点击按钮跳转到其他的页面. 二.遇到的问题 1.IOS设备微信上,视频不能预加载 ...

  4. 微信内置浏览器 非全屏播放视频解析

    前提条件,接了一个项目要实现在微信公众号里课程播放,而且还有评论功能,视频需要小窗播放. 首先公布解决方案: 感谢知乎上的回答,原版微信内置浏览器 如何小窗不全屏播放视频? 感谢该问题的徐霖同学的回答 ...

  5. []转载]微信内置浏览器 非全屏播放视频解析

    前提条件,接了一个项目要实现在微信公众号里课程播放,而且还有评论功能,视频需要小窗播放.首先公布解决方案: 感谢知乎上的回答,原版[微信内置浏览器 如何小窗不全屏播放视频?]感谢该问题的徐霖同学的回答 ...

  6. 微信内置浏览器 非全屏播放视频解析 1

    前提条件,接了一个项目要实现在微信公众号里课程播放,而且还有评论功能,视频需要小窗播放. 首先公布解决方案: 感谢知乎上的回答,原版[ 微信内置浏览器 如何小窗不全屏播放视频?] 感谢该问题的徐霖同学 ...

  7. 【播放器SDK】Android如何实现固定竖屏播放视频

    安卓的固定竖屏播放并不受手机是否开启旋转的限制,需要用户设置Activity为固定竖屏.目前带皮肤的播放器内部对竖屏播放视频做了一定的支持.用户使用相对比较简单. 带皮肤播放器 参考Demo代码Fix ...

  8. uniapp 判断页面是否是横竖屏,解决微信小程序video组件全屏播放视频遮盖自定义播放控件问题

    如果res.deviceOrientation 等于landscape 的话是竖屏,portrait则是横屏.因为用户每旋转一次屏幕就会触发里面的onShow钩子,因此在页面显示或横竖屏变化都会触发这 ...

  9. 如何获取UIWebView中全屏播放视频事件

    这样一种情况,用UIWebView加载一个页面,竖屏,页面中有视频,现在我们希望在全屏播放这个视频的时候可以横屏.解决方法如下: 1.设置一个变量监控是否全屏播放视频 2.根据这个变量设置是否可以横屏 ...

最新文章

  1. 切割固定长度字符串的方法_木质踢脚线安装的施工方法
  2. 区块链中密码学与安全技术
  3. android创建构建方法,Android 应用程序构建实战+原理精讲
  4. web中间件_HTTP中间件机制实现与原理 - 从零开始写GO-API框架
  5. java命令行参数_一个 java 命令行参数顺序的坑
  6. leetcode-680-Valid Palindrome II
  7. 计算机应用技术与英语相关性,浅析计算机应用的技术专业的计算机专业英语的教学改进.doc...
  8. 北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!
  9. GoogleNet论文解读
  10. 网络空间地图测绘的战略意义(下)
  11. matlab中dot是什么,matlab中ddot是什么
  12. 电子设计入门——各种不同的GND怎么接
  13. 公众号对接淘宝联盟_公众访问新联盟支持的作品
  14. url 里面 等号_【Python成长之路】从零学爬虫给微信公众号阅读量作个弊:刷阅读量...
  15. 爱创课堂分享web前端学习路线自学如何找到工作
  16. android基础知识13:AndroidManifest.xml文件解析【转载】
  17. 【来日复制粘贴】跨sheet的数据录入
  18. 编译compile和连接Link
  19. KendoUI模板引擎 - 概述
  20. 基于QGraphicsView、QGraphicsScene、自定义QGraphicsItem的小demo(正矩形、旋转矩形及圆形)

热门文章

  1. java erc 2.0_java 监听 ERC20 Token 交易
  2. es 指定排序字段_ES使用text类型字段排序报错
  3. 邮件合并没有html选项,word没有显示邮件合并在哪找
  4. Ehcache 中ehcache.xml 配置详解和示例
  5. linux可以批注pdf,linux下的pdf浏览器(可加批注)
  6. [COCI2014-2015#7] TETA
  7. IDRLP: Image Dehazing Using Region Line Prior
  8. 【深度学习 理论】Tips for Deep Learning-1
  9. 塑造者思考法-自顶向下的思考方法
  10. Java如何计算2个时间段内共有几天几小时几分几秒