Activity的横竖屏切换其实很简单, 如果你的Activity没有声明android:configChanges, 那么Activity的方向就会随着手机的旋转而旋转. (手机需要开启自动旋转功能, 通常在手机的顶部通知栏中)

本来这样就搞定了, 但是….之所以需要自己控制, 是因为横屏竖屏时, 见面的显示需要有所不同.
才需要针对做出处理.

接下来, 就教大家2种界面处理的方式:

为了更好的用户体验, 请在Activity中加上属性android:configChanges="orientation|screenSize", 防止手机旋转时, Activity被重建.

1:系统自动处理

如果要让系统自动处理, 横竖屏界面, 只需要一个简单的配置:

创建一个 layout-land资源文件夹, 里面的xml会在手机横屏时, 自动调用. 其他代码不变. 就完成了界面切换.

注意:findViewById的时候, 要判断当前方向哦, 要不然会找不到id,因为xml不一样了.如图:

根据方向, 初始化不同的View

注意:当你调用setContentView之后, 所有的View, 都已经重新创建了.
这样会出现一个小问题: 就是视频播放的进度会丢失,此时就需要保存视频播放进度, 方向切换后seekTo就行了.

2:手动处理

当手机旋转后, Activity会执行onConfigurationChanged方法:

 @Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);initView();}

只需要在这个方法中, 控制想要显示, 或者 想要隐藏的View.

想这样, 手动控制隐藏跟显示.

好处在于:
1. layout-land资源文件夹, 不需要, 但是最主要的xml, 要包含横竖屏所有的View才行.
2. 不需要在手机选装之后重新调用setContentView了, 因为用之前在onCreate中设置的就行了.
3. 视频的进度自动保存了, 这一条可能是作用最大的了.

源码地址:https://github.com/angcyo/VideoDemo

如果你想实现在列表中切换横竖屏, 或者想使用ijkplayer, 可以参考:https://github.com/xiaoyanger0825/NiceVieoPlayer


联系作者

点此快速加群

请使用QQ扫码加群, 小伙伴们在等着你哦!

关注我的公众号, 每天都能一起玩耍哦!

Android--播放视频横竖屏切换的2种方式相关推荐

  1. Android开发中横竖屏切换的问题以及系统提供的常用Activity

    Android开发中横竖屏切换的问题以及系统提供的常用Activity(总结) 2018年06月28日 16:18:45 北极熊的微笑 阅读数:72 横竖屏切换与状态保存的问题 前面也也说到了App横 ...

  2. Android 监听横竖屏切换

    Android 监听横竖屏切换 重写 Activity 中的 onConfigurationChanged 方法 override fun onConfigurationChanged(newConf ...

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

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

  4. Android视频播放器横竖屏切换时遇到的问题记录

    我用的播放器是KMedia,一个开源的播放器,链接如下 https://github.com/BlackQi/KMedia 我个人觉得还是很好用的,支持定制.现在遇到一个问题就是播放时横屏铺满全屏视频 ...

  5. Android监听横竖屏切换

    偶然在项目中用到播放视频时,需要横屏将视频全屏播放,所以需要监听屏幕的横竖屏切换事件. ConfigChanges,用于捕获手机状态的改变,当横竖屏切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就 ...

  6. Android视频播放和横竖屏切换

    最近做了一个项目,里面用到了视频播放这一块,当时想考虑Vitamio,demo也做了出来,但是后来发现它是商业收费的,并且收费相当可观,所以只能放弃了.然后找到了ijkPlayer,功能也很强大,最终 ...

  7. 解决Android手机 屏幕横竖屏切换

    Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在An ...

  8. android实现自动横竖屏切换,android 中实现横竖屏切换【原创】

    我们在使用android手机的时候,发现一些应用有横竖屏切换的功能,一般实现有以下几种方法: 一.设置 1.通过XML设置横竖屏切换 在项目的 AndroidManifest.xml中找到你所指定的a ...

  9. Android 11---WMS之横竖屏切换流程详解之一

    本文以Activity.setRequestedOrientation为入口梳理下横竖屏切换的详细流程.     代码均是基于最新的11.0版本. 第一篇主要讲了横竖屏切换时的准备操作: 更新方向,执 ...

最新文章

  1. vi查找替换命令详解
  2. 基于物化视图优化_CVPR2017|基于构造多视图子空间中的潜在表示解决聚类问题
  3. javaone_JavaOne 2016 Essentials:您不应该错过的7个事件和会话
  4. linux安装telnet组件,LINUX下如何安装telnet
  5. 如何快速python入手_初学者怎么才能快速学会Python?
  6. 苏宁大数据怎么运营_【苏宁大数据部门怎么样?进去能学到技术吗?】-看准网...
  7. C++特殊符号:【优先级】
  8. python入门——P45魔法方法:属性访问
  9. mysql 无法启动时,或尝试mysqld_safe --user=root
  10. 如何将pdf转换成txt破解版
  11. 查阅我们JavaScript学习新指南
  12. Mentor Xpedtion partsymbolcell
  13. SpringBoot简明教程
  14. 前端每日实战:77# 视频演示如何用纯 CSS 创作旗帜飘扬的动画
  15. 二极管ss14测量_开关二极管怎么测量好坏
  16. vue使用vue-video-player播放视频及遇到的问题
  17. TIA博途_STEP7版本的升级与移植相关难点汇总
  18. dedecms织梦tag标签当前列表地址
  19. Unity:Firebase接入Google登录
  20. 京东开放平台Java SDK jd-open-sdk 的引入与使用

热门文章

  1. scrapy爬取51job职位信息(针对2020.851job新的反爬虫机制)
  2. 腾讯视频Node.js服务是如何支撑国庆阅兵直播高并发的?
  3. maven 使用本地库
  4. 追剪电子凸轮算法(图)
  5. 【案例7】NC+ORACLE+系统初始化的完整操作顺序
  6. 手机摄像头的等效焦距
  7. 什么是正向代理和反向代理
  8. gene Ontology (基因本体论)
  9. 翁恺老师c语言课程笔记
  10. USACO 2022 US Open Contest, Bronze