android播放器竖屏,Android 巧用DecorView实现列表或详情视频播放器竖屏及全屏切换...

在平时开发过程中,如果使用到视频播放器的功能,那就一定会涉及到全屏切换的操作

以往常规操作基本如下

设置全屏播放步骤

1、横屏

2、视频播放器尺寸调整

3、隐藏其他多余控件

恢复小屏播放

1、竖屏

2、调整视频播放器尺寸

3、恢复其余控件

或者一些其他操作

1、小屏播放器暂停,记录进度

2、调用全屏播放器播放,指定播放进度

3、恢复的情况下重新设置小屏播放进度

这样的操作在简单的界面可以适用,只要逻辑控制好即可。

弊端:

1、要进行逻辑处理较多,容易出问题

2、在列表等特殊位置的播放器不易控制

3、若使用全屏播放器切换不流畅,有卡顿现象

我们今天要说的是,如何在复杂界面上的视频播放切换,步骤很简单,两步骤,基本使用所有场景。

一、首先要了解一个 Activity 是由哪些部分组成

e4083bf2845c

image.png

从上面图片可以看出activity的层级可以看出整个activty的层级其实分为->phoneWindow->DecorView(包含TitleView [例如actionbar,StatusBar等] 和contentView [我们自己编写的界面] )

二、巧妙的利用DecorView层实现视频的全屏播放功能

竖屏切换全屏步骤:

1、Activity进行横屏切换

2、从contentView中移除播放器player

3、获取DecorView对象,将移出的player加到DecorView中

4、设置player的全屏播放尺寸

全屏还原至竖屏步骤:

1、Activity竖屏切换

2、从DecorView移除player

3、将player再放回去到contentView中

4、设置player竖屏的播放状态

注意事项:

1、每次移除加入的时候确保将其从原控件中移除,否则会报错 xx already has a parent xx 注意规避。

2、切换过程中注意DecorView.setSystemUiVisibility(x) 要注意控制顶部的状态栏样式,切换全屏播放的时候可以将其隐藏,还原小屏的时候再行恢复

3、注意刘海屏或挖孔屏等一些特殊屏幕的适配操作

举一反三:

1、实现播放器悬浮播放也可以参考这种,播放器保持一个对象,移除加入再恢复之类的

欢迎大家留言讨论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值