android:configChanges

来源:互联网 发布:淘宝 处方药购买流程 编辑:程序博客网 时间:2024/05/01 22:22

http://blog.csdn.net/jkkjklmn/article/details/7349517

VALUE                        DESCRIPTION                                                                                                                                                                                      "mcc"国际移动用户识别码所属国家代号是改变了-----  sim被侦测到了,去更新mcc    mcc是移动用户所属国家代号"mnc"国际移动用户识别码的移动网号码是改变了------ sim被侦测到了,去更新mnc    MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网"locale"地址改变了-----用户选择了一个新的语言会显示出来"touchscreen"触摸屏是改变了------通常是不会发生的"keyboard"键盘发生了改变----例如用户用了外部的键盘"keyboardHidden"键盘的可用性发生了改变"navigation"导航发生了变化-----通常也不会发生"screenLayout"屏幕的显示发生了变化------不同的显示被激活"fontScale"字体比例发生了变化----选择了不同的全局字体"uiMode"用户的模式发生了变化"orientation"屏幕方向改变了"screenSize"屏幕大小改变了"smallestScreenSize"屏幕的物理大小改变了,如:连接到一个外部的屏幕上

android:configChanges

在Android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。在activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而只是调用onConfigurationChanged(Configuration newConfig).这样就可以在这个方法里调整显示方式.

[java] view plain copy
  1. public void onConfigurationChanged(Configuration newConfig) {    
  2.         try {    
  3.             super.onConfigurationChanged(newConfig);    
  4.             if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {    
  5.                 Log.v("Himi""onConfigurationChanged_ORIENTATION_LANDSCAPE");    
  6.             } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {    
  7.                 Log.v("Himi""onConfigurationChanged_ORIENTATION_PORTRAIT");    
  8.             }    
  9.         } catch (Exception ex) {    
  10.         }    
  11.     }    

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.himi" android:versionCode="1" android:versionName="1.0">  
  4.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  5.         <activity android:name=".MainActivity" android:label="@string/app_name"  
  6.             android:configChanges="keyboardHidden|orientation">  
  7.             <intent-filter>  
  8.                 <action android:name="android.intent.action.MAIN" />  
  9.                 <category android:name="android.intent.category.LAUNCHER" />  
  10.             </intent-filter>  
  11.         </activity>  
  12.     </application>  
  13.     <uses-sdk android:minSdkVersion="4" />  
  14. </manifest> 

可以在这个函数newConfig中的参数,设置横竖屏所需要的资源替换等操作。

当然: 可以使用manifest中的android:screenOrientation="portrait"(竖)或者 android:screenOrientation="landscape"(横)直接控制横竖屏。


0 0
原创粉丝点击