通过设置ConfigChanges这个属性可以捕捉设备状态变化。
例转屏时,保存所做操作继续进行。具体设置如下:
1 在相关的AndroidMainfest.xml中
<activity
添加android:configChanges="orientation"
2 在相关的.java文件中添加方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//landscape表示横向
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//portrait表示纵向
}
}
在android中每次屏幕的切换会重启Activity。加上configChanges=“keyboardHidden”属性,就不会重启activity,而是去调用onConfigurationChanged方法。
ConfigChanges设置方法:将下列字段用“|”分隔开,例:“orientation|keyboardHidden"
Value Description
“mcc“ The IMSI mobile country code (MCC) has changed — that is, a SIM hasbeen detected and updated the MCC.移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ The IMSI mobile network code (MNC) has changed — that is, a SIM hasbeen detected and updated the MNC.移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ The locale has changed — for example, the user has selected a new language that text should be displayed in.用户所在地区发生变化。
“touchscreen“ The touchscreen has changed. (This should never normally happen.)
“keyboard“ The keyboard type has changed — for example, the user has plugged in an external keyboard.键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ The keyboard accessibility has changed — for example, the user has slid the keyboard out to expose it.用户打开手机硬件键盘
“navigation“ The navigation type has changed. (This should never normally happen.)
“orientation“ The screen orientation has changed — that is, the user has rotated the device.设备旋转,横向显示和竖向显示模式切换。
“fontScale“ The font scaling factor has changed — that is, the user has selected a new global font size.全局字体大小缩放发生改变
具体见android.content.res.configuration
分享到:
相关推荐
当用户选择“屏幕方向锁定”后,设备通常会停留在当前的横屏或竖屏模式,但有时可能会因为某些原因出现意外旋转。开发者需要处理这种情况,确保应用在锁定模式下不会因为设备传感器的变化而自动旋转。 首先,我们...
在Android应用开发中,"竖屏转横屏的Activity切换效果"是一个常见的需求,涉及到屏幕方向的处理和动画效果的实现。以下将详细介绍这个主题的相关知识点。 首先,Android系统支持两种基本的屏幕方向: portrait(竖...
在IT行业中,"转屏的处理"是一个常见的话题,特别是在移动应用开发中。当我们谈论转屏,我们通常指的是设备从横向模式切换到纵向模式,或者反之。这种转换可能对应用程序的布局、用户界面(UI)以及用户体验(UX)...
本篇将详细介绍如何在Android应用中使用`VideoView` 实现屏幕旋转时的转屏处理技巧。 首先,了解`VideoView`的基本用法。`VideoView`继承自`SurfaceView`,它可以加载并播放本地或网络上的视频资源。我们通常会通过...
1. **在`AndroidManifest.xml`中设置`configChanges`属性**:通过添加`configChanges="orientation|keyboardHidden"`属性,可以告诉Android系统,该Activity可以处理配置变化而不重启,从而避免`onCreate()`的重复...
值得注意的是,如果不包含`keyboardHidden`选项,Activity在键盘显示或隐藏时可能会被销毁,而且在`onConfigurationChanged`事件中只能捕获竖屏转横屏的事件,无法捕获横屏转竖屏的情况。 #### 二、重写`...
如果不想在横竖屏切换时重新创建Activity,可以在AndroidManifest.xml中添加`android:configChanges="orientation|screenSize"`,然后重写Activity的`onConfigurationChanged()`方法来处理屏幕方向变化。 ```xml ...
总的来说,通过在AndroidManifest.xml中正确设置`android:configChanges`属性,并在Activity中忽略配置变化,可以在Android 4.0及以上版本中实现禁止横屏竖屏切换的功能。然而,这种方法可能会导致用户界面在不同...
3. **重写Activity的onConfigurationChanged()**:为了在屏幕方向改变时不重新创建Activity,需要在AndroidManifest.xml中对应的Activity标签中添加`android:configChanges="orientation|screenSize"`,然后在...
本实例主要探讨如何在Android应用中实现在横屏和竖屏之间的自由切换,以及如何检测屏幕方向的变化。 首先,Android系统提供了两种基本的屏幕方向:横屏(Landscape)和竖屏(Portrait)。默认情况下,Android应用会...
在Android开发中,横竖屏切换是一个常见的需求,尤其对于那些需要根据屏幕方向提供不同界面布局的应用来说。本文将深入探讨Android系统中的横竖屏切换机制,并通过"OrientationSwitchDemo"这个示例代码来帮助理解。 ...
但需要注意,为了监听横竖屏变化,需要在AndroidManifest.xml中为对应的Activity添加`android:configChanges="orientation|screenSize"`。 六、源程序使用 这个“安卓横竖屏切换源程序”应该包含了一些处理横竖屏...
使用`android:configChanges="orientation|screenSize"`在`AndroidManifest.xml`中声明屏幕配置变化,然后在`onConfigurationChanged()`方法中处理横竖屏的转换。 3. **横竖屏切换逻辑**:在横竖屏切换时,视频播放...
在横竖屏切换过程中,Activity的生命周期会经历以下过程(如果未指定`android:configChanges`): 1. `onPause()`:Activity暂停,不再与用户交互。 2. `onStop()`:Activity不再可见,可能被其他Activity覆盖。 3....
1. **配置Activity**:在AndroidManifest.xml中,将Activity的`android:configChanges`属性设置为`orientation|screenSize`,这样在横竖屏切换时,系统不会默认销毁Activity,而是调用`onConfigurationChanged()`...
为了优化用户体验并避免频繁地重建Activity实例,可以在AndroidManifest.xml中的Activity标签内添加属性`android:configChanges="orientation"`。这样做的好处在于: 1. **减少重建开销**:避免了Activity的重建...
如果不希望这种行为,可以设置`android:configChanges="orientation"`,这样系统就不会默认销毁活动,而是调用`onConfigurationChanged()`方法。 3. **资源适配**:在res目录下,可以创建不同的价值目录如`values-...
同时,别忘了在AndroidManifest.xml中为对应的Activity添加`android:configChanges="orientation|screenSize"`,以允许Activity自行处理配置变化,而不是默认的重新创建Activity。 总结来说,"Landscape模式-屏幕...
本示例"android_横竖屏切换demo"旨在教你如何在Android应用中实现屏幕方向的自由转换,包括从横屏切换到竖屏以及从竖屏返回横屏。 在Android系统中,屏幕方向主要由AndroidManifest.xml文件中的标签控制。默认情况...
在Android应用开发中,横竖屏切换是一个常见的需求,开发者需要处理好布局的变化以及由此引发的用户体验问题。本文将详细讲解如何在Android中实现横竖屏切换,并讨论如何禁止或控制这种切换。 首先,Android系统...