以下提供获取Android设备横竖屏状态方法

    /*** 获取当前屏幕是否是横屏(默认)** @param context* @return*/public static boolean isCurOriLand(Context context) {boolean isLand = true;try {Configuration mConfiguration = context.getResources().getConfiguration(); //获取设置的配置信息int ori = mConfiguration.orientation; //获取屏幕方向if (ori == mConfiguration.ORIENTATION_LANDSCAPE) {//横屏isLand = true;} else if (ori == mConfiguration.ORIENTATION_PORTRAIT) {//竖屏isLand = false;}} catch (Exception e) {e.printStackTrace();}return isLand;}

偶然在项目中用到播放视频时,需要横屏将视频全屏播放,所以需要监听屏幕的横竖屏切换事件。

ConfigChanges,用于捕获手机状态的改变,当横竖屏切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就会触发回调事件onConfigurationChanged。让Activity捕捉到该事件,需要做如下步骤:

  1. 声明Activity需要捕捉的事件类型,在manifest的配置:
        <activity android:name=".MainActivity"android:configChanges="orientation|keyboard|layoutDirection|screenSize"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>

configChanges配置参数说明:

“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ 所在地区发生变化。
“touchscreen“ 触摸屏已经改变。
“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ 用户打开手机硬件键盘
“navigation“ 导航发生了变化。
“orientation“ 横竖屏切换。
“fontScale“ 全局字体大小缩放发生改变

  1. 重写Activity中的onConfigurationChanged方法,加上自己的处理事件。
    @Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){Toast.makeText(getApplicationContext(), "横屏", Toast.LENGTH_SHORT).show();}else{Toast.makeText(getApplicationContext(), "竖屏", Toast.LENGTH_SHORT).show();}}

Configuration.ORIENTATION_LANDSCAPE 横屏
Configuration.ORIENTATION_PORTRAIT 竖屏

另外:

  • 不设置activity的android:configChanges属性时,切换横竖屏会调用各个生命周期方法,横屏调一次,竖屏调用2次
  • 设置activity的android:configChanges="orientation“属性时,切换横竖屏会调用各个生命周期方法,横屏调一次,竖屏调用1次
  • 设置activity的android:configChanges="orientation|keyboardHidden"时,切换横竖屏不会调用各个生命周期方法,只会执行onConfigurationChanged方法

Android获取横竖屏状态及监听相关推荐

  1. Android 获取横竖屏状态

    方法一: /*** 获取当前屏幕是否是横屏(默认)** @param context* @return*/public static boolean isCurOriLand(Context cont ...

  2. JS获取移动端系统信息(操作系统、操作系统版本、横竖屏状态、设备类型、网络状态、生成浏览器指纹)...

    function getOS() { // 获取当前操作系统 var os; if (navigator.userAgent.indexOf('Android') > -1 || navigat ...

  3. Android,通过监听重力传感器来获取当前设备的横竖屏状态(备用选择:加速度传感器)

    获取重力传感器监听回调步骤 一.获取传感器管理类 private val mSensorManager by lazy { getSystemService(Context.SENSOR_SERVIC ...

  4. android hdmi 监听,对于HDMI设备连接状态的监听

    对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看. 主要通过两种方式: (1)比较常用的广播监听 注册一个动态广播来获取 ...

  5. Android之电话状态的监听(来电和去电)

    实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener. TelephonseManger提供了取得手机基本服务的信息的一种方式.因此应用程序可以 ...

  6. 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络连接情况全解:包括网络连接状态的监听.网络数据使用状态的监听.获取当前网络连接情况.启动wifi.获取当前连接wifi的网络情况.扫描wifi ...

  7. Android广播接实现电话的监听(电话的状态,拦截)

    Android广播接实现电话的监听 1:需要在AndroidManifest.xml清单中添加权限 <uses-permission android:name="android.per ...

  8. [Android]Fragment自定义动画、动画监听以及兼容性包使用

    Fragment是Android在API 11之后加入的一个组件,对提高Android开发中的布局合理性和布局效率都有很大作用,尤其是在Android平板等大屏幕设备的开发中,Fragment的引入能 ...

  9. Android RecyclerView(九)滑动监听综述

    Android RecyclerView(九)滑动监听 1 RecyclerView 的滑动监听 1.1 RecyclerView 设置滑动监听 mRecyclerView.setOnScrollLi ...

  10. 移动端判断手机横竖屏状态及加载相应样式或内容的解决方案

    移动端的开发过程中,免不了要判断横竖屏,然后在执行其他操作,比如分别加载不同样式或内容等等. 首先在做移动端开发的时候,在HTML页面head中加入如下代码 <meta name="v ...

最新文章

  1. cache + db 性能
  2. linux修改隐藏文件生效,在Linux传统文件系统下隐藏属性的修改-linux修改文件名...
  3. ORA-600 各个参数含义说明
  4. 软件工程 交互设计 信息架构设计是什么
  5. spring 事务传播机制和隔离级别
  6. 自然语言处理(NLP)语义分析--文本分类、情感分析、意图识别
  7. 海量数据搜索---搜索引擎的实现
  8. 基于Web的动态新闻发布系统设计与实现(含word文档)
  9. 利用Backtrader进行期权回测之五:用backtrader_plotting查看回测结果
  10. java 绘制六边形_六边形架构 Java 实现
  11. 【Kotlin】by lazy关键字的实现原理
  12. 【unity插件】Rewired插件-unity3d实现主机、PC手柄震动Vibration
  13. 闲鱼怎么引流到淘宝客?吸引住大量的粉丝
  14. matlab中的graythresh函数的实例
  15. 特斯拉充电电流设置多大_特斯拉充电时间
  16. 霸气女创始人刘楠:我挖了迪士尼高管,2年把公司干到100亿!
  17. 2017百度之星初赛B场总结
  18. 对于计算机网络体系结构的初步思考(附图解)
  19. HTML实现登录注册界面
  20. Python程控泰克示波器(4)

热门文章

  1. 用node+WebSocket+MySQL+vue仿做学习通的一些功能(一):用户登录和注册页面的实现
  2. 如何在Excel中设置下拉选项
  3. 【嵌入式开发】STM8S103F3P6单线半双工串口通信
  4. python3 sorted自定义排序的函数
  5. 笔记本电脑频繁自动重启_电脑一直自动重启怎么办 电脑一直自动重启的原因和解决办法...
  6. linux驱动面试题2018(面试题整理,含答案)
  7. B站的热门视频要怎么同时批量下载保存到本地电脑中
  8. 用PS设计曲线四分环
  9. 关于C语言常量需要注意的点
  10. epcs1s是epcs1系列的么_串行FLASH配置芯片(EPCS1或EPCS4)数据手册.pdf