当前位置: 首页 > 编程笔记 >

Android 屏幕横竖切换详解

冯阳云
2023-03-14
本文向大家介绍Android 屏幕横竖切换详解,包括了Android 屏幕横竖切换详解的使用技巧和注意事项,需要的朋友参考一下

Android 屏幕横竖切换

Android 里面控制Activity的方向,只要在AndroidManifest.xml里面对应的Activity节点下加一句

android:screenOrientation="landscape"(landscape是横屏,portrait竖屏)。

 我凭这句话混了一年,基本都可以的,但是这几天我发现这招不是万能的了。 

项目里面有一个横屏播放视频的PlayAcitivity,我和之前一样设置了android:screenOrientation="landscape"。到这边都没有问题,后来加了一个需求,点击屏幕上面的”评论”按钮,弹出一个对话框,这个对话框我是用Activity实现的。效果是:竖屏、评论界面占据屏幕的中间一块,周围是半透明的。

神奇的事情出现了,评论窗口弹出后,我发现后面的播放界面居然变成了竖屏。(因为上面说过,这个对话框只暂居了大半个屏幕,周围透明,所以可以看见后面的界面PlayAcitivity)。 

看见屏幕切换为竖屏了,我就郁闷了,我明明设置了android:screenOrientation="landscape",为什么还切换呢。

后来谷歌、百度…  也没有找出原因来。自我理解是这样的:虽然PlayAcitivity被遮住了,但是依然有一部分可见。而顶部窗口(对话框)是设置为android:screenOrientation="portrait"的,屏幕只有一个,肯定是根据顶部窗口的设置为准。

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

 在AndroidManifest.xml中为Activity设置configChanges属性.

configChanges有如下选项: 

1. orientation :屏幕在纵向和横向间旋转;

2. keyboardHidden:键盘显示或隐藏;

3.fontScale: 用户变更了首选的字体大小 

4.locale: 用户选择了不同的语言设定;

5. keyboard: 键盘类型变更,例如手机从12键盘切换到全键盘

6. touchscreen或navigation: 键盘或导航方式变化,

如果缺少了keyboardHidden选项,不能防止Activity的销毁,并且在之后提到的onConfigurationChanged事件中只能捕获竖屏变横屏的事件不能捕获横屏变竖屏。

android:onConfigurationChanged实际对应的是Activity里的onConfigurationChanged()方法。在AndroidManifest.xml中添加上述代码的含义是表示在改变屏幕方向、弹出软件盘和隐藏软键盘时,不再去执行onCreate()方法,而是直接执行onConfigurationChanged()。如果不申明此段代码,按照Activity的生命周期,都会去执行一次onCreate()方法,而onCreate()方法通常会在显示之前做一些初始化工作。所以如果改变屏幕方向这样的操作都去执行onCreate()方法,就有可能造成重复的初始化,降低程序效率是必然的了,而且更有可能因为重复的初始化而导致数据的丢失。这是需要千万避免的。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍Android横竖屏幕切换小结,包括了Android横竖屏幕切换小结的使用技巧和注意事项,需要的朋友参考一下 Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭。 AndroidManifest.xml activity_main.xml MainActivity.java 以上内容给大家

  • 本文向大家介绍Android横竖屏幕切换生命周期详解,包括了Android横竖屏幕切换生命周期详解的使用技巧和注意事项,需要的朋友参考一下 一、简介 二、代码 /activityLifeCycle_3Screen/AndroidManifest.xml 核心代码:android:configChanges="keyboardHidden|orientation|screenSize" com.fr

  • 本文向大家介绍解决Android手机屏幕横竖屏切换,包括了解决Android手机屏幕横竖屏切换的使用技巧和注意事项,需要的朋友参考一下 Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载), 怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在AndroidManifest.xml中为Activity设置co

  • 本文向大家介绍Android横竖屏切换实例总结,包括了Android横竖屏切换实例总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了Android横竖屏切换相关技巧。分享给大家供大家参考,具体如下: 一、禁止横竖屏切换 Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换,即通过在AndroidManifest.x

  • Since 10.0.8 setLandscape(android only) 横竖屏自由切换 setLandscape 使用方法 // 切换横屏 AlipayJSBridge.call('setLandscape', {}, function(e){ console.log(e) }); // 切换竖屏 AlipayJSBridge.call('setPortrait', {}, fun

  • 本文向大家介绍Android 实现视频字幕Subtitle和横竖屏切换示例,包括了Android 实现视频字幕Subtitle和横竖屏切换示例的使用技巧和注意事项,需要的朋友参考一下 系统自带的VideoView有些视频格式不支持,那么我们可以用第三方实现的VideoView替代系统的来播放视频,比较流行的有ijkplayer、vitamio。 最近有个需求就是需要给视频添加字幕,其实也挺简单的。