Android获取横竖屏状态及监听
以下提供获取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捕捉到该事件,需要做如下步骤:
- 声明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“ 全局字体大小缩放发生改变
- 重写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获取横竖屏状态及监听相关推荐
- Android 获取横竖屏状态
方法一: /*** 获取当前屏幕是否是横屏(默认)** @param context* @return*/public static boolean isCurOriLand(Context cont ...
- JS获取移动端系统信息(操作系统、操作系统版本、横竖屏状态、设备类型、网络状态、生成浏览器指纹)...
function getOS() { // 获取当前操作系统 var os; if (navigator.userAgent.indexOf('Android') > -1 || navigat ...
- Android,通过监听重力传感器来获取当前设备的横竖屏状态(备用选择:加速度传感器)
获取重力传感器监听回调步骤 一.获取传感器管理类 private val mSensorManager by lazy { getSystemService(Context.SENSOR_SERVIC ...
- android hdmi 监听,对于HDMI设备连接状态的监听
对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看. 主要通过两种方式: (1)比较常用的广播监听 注册一个动态广播来获取 ...
- Android之电话状态的监听(来电和去电)
实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener. TelephonseManger提供了取得手机基本服务的信息的一种方式.因此应用程序可以 ...
- 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络连接情况全解:包括网络连接状态的监听.网络数据使用状态的监听.获取当前网络连接情况.启动wifi.获取当前连接wifi的网络情况.扫描wifi ...
- Android广播接实现电话的监听(电话的状态,拦截)
Android广播接实现电话的监听 1:需要在AndroidManifest.xml清单中添加权限 <uses-permission android:name="android.per ...
- [Android]Fragment自定义动画、动画监听以及兼容性包使用
Fragment是Android在API 11之后加入的一个组件,对提高Android开发中的布局合理性和布局效率都有很大作用,尤其是在Android平板等大屏幕设备的开发中,Fragment的引入能 ...
- Android RecyclerView(九)滑动监听综述
Android RecyclerView(九)滑动监听 1 RecyclerView 的滑动监听 1.1 RecyclerView 设置滑动监听 mRecyclerView.setOnScrollLi ...
- 移动端判断手机横竖屏状态及加载相应样式或内容的解决方案
移动端的开发过程中,免不了要判断横竖屏,然后在执行其他操作,比如分别加载不同样式或内容等等. 首先在做移动端开发的时候,在HTML页面head中加入如下代码 <meta name="v ...
最新文章
- cache + db 性能
- linux修改隐藏文件生效,在Linux传统文件系统下隐藏属性的修改-linux修改文件名...
- ORA-600 各个参数含义说明
- 软件工程 交互设计 信息架构设计是什么
- spring 事务传播机制和隔离级别
- 自然语言处理(NLP)语义分析--文本分类、情感分析、意图识别
- 海量数据搜索---搜索引擎的实现
- 基于Web的动态新闻发布系统设计与实现(含word文档)
- 利用Backtrader进行期权回测之五:用backtrader_plotting查看回测结果
- java 绘制六边形_六边形架构 Java 实现
- 【Kotlin】by lazy关键字的实现原理
- 【unity插件】Rewired插件-unity3d实现主机、PC手柄震动Vibration
- 闲鱼怎么引流到淘宝客?吸引住大量的粉丝
- matlab中的graythresh函数的实例
- 特斯拉充电电流设置多大_特斯拉充电时间
- 霸气女创始人刘楠:我挖了迪士尼高管,2年把公司干到100亿!
- 2017百度之星初赛B场总结
- 对于计算机网络体系结构的初步思考(附图解)
- HTML实现登录注册界面
- Python程控泰克示波器(4)
热门文章
- 用node+WebSocket+MySQL+vue仿做学习通的一些功能(一):用户登录和注册页面的实现
- 如何在Excel中设置下拉选项
- 【嵌入式开发】STM8S103F3P6单线半双工串口通信
- python3 sorted自定义排序的函数
- 笔记本电脑频繁自动重启_电脑一直自动重启怎么办 电脑一直自动重启的原因和解决办法...
- linux驱动面试题2018(面试题整理,含答案)
- B站的热门视频要怎么同时批量下载保存到本地电脑中
- 用PS设计曲线四分环
- 关于C语言常量需要注意的点
- epcs1s是epcs1系列的么_串行FLASH配置芯片(EPCS1或EPCS4)数据手册.pdf