Android监听横竖屏切换功能
作者:翻滚吧李博 时间:2023-06-11 05:39:16
偶然在项目中用到播放视频时,需要横屏将视频全屏播放,所以需要监听屏幕的横竖屏切换事件。
横竖屏切换监听效果:
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方法,加上自己的处理事件。
@Override
public 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监听横竖屏切换功能网站的支持!
来源:https://www.jianshu.com/p/85a87182de6d
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
如何自己实现Android View Touch事件分发流程
使用java连接Redis,Maven管理操作
java实现excel和txt文件互转
C#实现系统休眠或静止休眠的方法
Android实现遮罩层(蒙板)效果
![](https://img.aspxhome.com/file/2023/4/137984_0s.jpg)
Spring Boot调用 Shell 脚本实现看门狗功能
2020最新eclipse安装过程及细节
![](https://img.aspxhome.com/file/2023/2/108382_0s.png)
java selenium 操作浏览器实例
C#生成PDF文件流
Kotlin标准函数与静态方法基础知识详解
![](https://img.aspxhome.com/file/2023/9/114349_0s.png)
Hadoop的安装与环境搭建教程图解
![](https://img.aspxhome.com/file/2023/5/75745_0s.png)
Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果
![](https://img.aspxhome.com/file/2023/8/104668_0s.png)
Maven属性与版本管理详细步骤分解
![](https://img.aspxhome.com/file/2023/1/59531_0s.png)
Java如何解决发送Post请求报Stream closed问题
![](https://img.aspxhome.com/file/2023/6/64956_0s.jpg)
Android Compose衰减动画Animatable使用详解
Spring @Transaction 注解执行事务的流程
![](https://img.aspxhome.com/file/2023/6/81906_0s.jpg)
kotlin中EditText赋值Type mismatch方式
![](https://img.aspxhome.com/file/2023/2/94282_0s.jpg)
Android游戏开发学习之引擎用法实例详解
java设计模式之适配器模式
![](https://img.aspxhome.com/file/2023/4/59854_0s.jpg)
java分布式面试CAP分别代表含义分析
![](https://img.aspxhome.com/file/2023/7/90027_0s.jpg)