在Manifest里加上android:configChanges="keyboardHidden|orientation|screenSize";

 

扩展补充:

一:

Activity中还有一属性和屏幕方向有关:

<activity 
   . . .
      android:screenOrientation=["unspecified" | "user" | "behind" |
                                 "landscape" | "portrait" |
                                 "sensor" | "nosensor"]
    . . .
&lt;/activity>

比如,在Mainifest.xml的Activity元素中增加这么一个属性:

android:screenOrientation="portrait"

则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。

android:screenOrientation="landscape“为横屏显示。

这里提一个小知识,Anroid模拟器中,快捷键"ctrl+F11"可以实现转屏。

 

二:

configuration

参考:http://blog.csdn.net/ljz2009y/article/details/8515548


一、设置android的硬件环境监听:

[html] view plain copy print ?
  1. <activity  
  2.             android:configChanges="orientation"  
  3.             android:name=".MainActivity"  
  4.             android:label="@string/title_activity_main" >  
  5.             <intent-filter>  
  6.                 <action android:name="android.intent.action.MAIN" />  
  7.                 <category android:name="android.intent.category.LAUNCHER" />  
  8.             intent-filter>  
  9.         activity>  


在需要监控的activity中的标签写下的方法用户监听标签

android:configChanges="orientation"

在activity中实现一下方法:

@Overridepublic void onConfigurationChanged(Configuration newConfig){super.onConfigurationChanged(newConfig);// 用户配置修改的时候if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){//在横屏的情况下,跳转textView.setText("ORIENTATION_LANDSCAPE " + System.currentTimeMillis());}else if( newConfig.orientation == Configuration.ORIENTATION_PORTRAIT ){//在竖直情况下,跳转textView.setText("ORIENTATION_PORTRAIT" + System.currentTimeMillis());}else if( newConfig.orientation == Configuration.ORIENTATION_SQUARE ){textView.setText("ORIENTATION_SQUARE " + System.currentTimeMillis());}else if( newConfig.orientation == Configuration.ORIENTATION_UNDEFINED ){textView.setText("ORIENTATION_UNDEFINED " + System.currentTimeMillis());}}


 

同这用就可以当屏幕的有横屏竖屏之间的转化,就有相关的事件触发。

(键盘显示或者隐藏、用户的语言设置、用户字体修改、对键盘类型修改、键盘导航修改)这些都可以触发相关的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.

 

更多相关文章

  1. SpyEye on Android
  2. android版本7.0以上无法抓取https
  3. H5-input 弹起键盘遮盖输入框(Android),键盘顶不起来输入框, ios
  4. Android(安卓)混淆 以及 java代码方式实现混淆配置
  5. Android(安卓)软件盘不自动弹出解决办
  6. Android(安卓)SDK和模拟器配置
  7. Android类似朋友圈评论视图Dialog实现
  8. Android(安卓)开发中配置Eclipse以提高效率
  9. android启动过程配置文件的解析与语法 .

随机推荐

  1. Android系统启动流程 -- android
  2. Android 通过Volley 模拟登录教务系统 出
  3. Volley使用指南第一回(来自developer.andr
  4. 以编程方式将位置模式更改为高精度Androi
  5. 理解Android的本地Service和跨进程Servic
  6. Android小项目之六 apk下载
  7. 尝试查看所有XML文件的图形布局时出现Sta
  8. 最近一年做Android项目过程中,对其的一些
  9. listview中的Android listview适配器(jso
  10. android 2D 游戏的开发的方法