在Manifest里加上android:configChanges="keyboardHidden|orientation|screenSize";
扩展补充:
一:
Activity中还有一属性和屏幕方向有关:
<activity
. . .
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nosensor"]
. . .
</activity>
比如,在Mainifest.xml的Activity元素中增加这么一个属性:
android:screenOrientation="portrait"
则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。
android:screenOrientation="landscape“,为横屏显示。
这里提一个小知识,Anroid模拟器中,快捷键"ctrl+F11"可以实现转屏。
二:
configuration
参考:http://blog.csdn.net/ljz2009y/article/details/8515548
一、设置android的硬件环境监听:
在需要监控的activity中的标签写下的方法用户监听标签
在activity中实现一下方法:
同这用就可以当屏幕的有横屏竖屏之间的转化,就有相关的事件触发。
(键盘显示或者隐藏、用户的语言设置、用户字体修改、对键盘类型修改、键盘导航修改)这些都可以触发相关的activity的事件产生。
二、对android固定设置格式
以下是网上良好的应用程序配置的说明:
Android通过终止、重启应用程序来重新加载资源文件,以做到对语言、区域和硬件实时变化的支持。它的默认的行为不是总是方便和令人满意的,尤其当配置变化(如屏幕方向和键盘可视)、用户旋转设备或划出键盘等。你可以通过监测和响应定制你的应用程序来对这些变化作出响应。
为了能让Activity能监听实时的配置变化,需要在manifest节点里添加“android:configChanges”特性,指定你要处理的配置变化事件。接下来的列表给出了你可以指定的配置变化的事件值:
❑ orientation 屏幕在纵向和横向间旋转。
❑ keyboardHidden 键盘显示或隐藏。
❑ fontScale 用户变更了首选的字体大小。
❑ locale 用户选择了不同的语言设定。
❑ keyboard 键盘类型变更,例如手机从12键盘切换到全键盘
❑ touchscreen或navigation 键盘或导航方式变化,一般不会发生这样的事件
// --------
Configuration 类中包含了很多种信息,例如系统字体大小,orientation,输入设备类型等等.
fontScale -- 来源于system.prop中 sys.font.scale配置项
输入设备类型配置:系统加入的任何输入device必须拥有输入属性:现在android中仅支持touchscreen(触摸),keyboard(键盘),navigation(滚动球)
orientation -- 屏幕方位
keyboardHidden -- 如果是划盖或开盖手机并且没有软键盘支持,这个设成true
hardKeyboardHidden -- 如果是划盖或开盖手机,这个设成true
locale -- 用户选择的location信息
theme -- 皮肤,资源等等
当Configuration改变后,ActivityManagerService将会发送"配置改变"的广播,会要求ActivityThread 重新启动当前focus的Activity.