Android监听横竖屏切换功能

作者:翻滚吧李博 时间:2023-06-11 05:39:16 

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

横竖屏切换监听效果:

Android监听横竖屏切换功能 

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

标签:android,横竖屏
0
投稿

猜你喜欢

  • 如何自己实现Android View Touch事件分发流程

    2023-10-19 14:07:30
  • 使用java连接Redis,Maven管理操作

    2023-06-29 10:29:45
  • java实现excel和txt文件互转

    2023-10-07 23:04:05
  • C#实现系统休眠或静止休眠的方法

    2023-12-19 01:55:29
  • Android实现遮罩层(蒙板)效果

    2023-04-26 18:43:03
  • Spring Boot调用 Shell 脚本实现看门狗功能

    2023-09-14 18:52:07
  • 2020最新eclipse安装过程及细节

    2023-11-06 09:25:56
  • java selenium 操作浏览器实例

    2023-04-13 17:57:13
  • C#生成PDF文件流

    2023-03-19 08:52:56
  • Kotlin标准函数与静态方法基础知识详解

    2021-12-18 08:12:13
  • Hadoop的安装与环境搭建教程图解

    2022-06-28 16:19:47
  • Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果

    2021-08-21 21:16:40
  • Maven属性与版本管理详细步骤分解

    2023-11-15 14:38:45
  • Java如何解决发送Post请求报Stream closed问题

    2021-12-12 04:20:10
  • Android Compose衰减动画Animatable使用详解

    2022-08-26 23:09:42
  • Spring @Transaction 注解执行事务的流程

    2022-12-30 15:41:23
  • kotlin中EditText赋值Type mismatch方式

    2023-06-19 03:52:56
  • Android游戏开发学习之引擎用法实例详解

    2023-09-26 16:01:57
  • java设计模式之适配器模式

    2021-08-28 09:08:09
  • java分布式面试CAP分别代表含义分析

    2021-10-05 17:54:47
  • asp之家 软件编程 m.aspxhome.com