Android设置应用程序默认语言

Android设置应用程序默认语言,我们只要分三步来实现此功能:

第一步:

写一个类(FunctionApplication)继承Application,在onCreate()方法中实现如下方法:

@Override
public void onCreate() {
    super.onCreate();
    String languageToLoad  = "zh";
    Locale locale = new Locale(languageToLoad);
    Locale.setDefault(locale);
    Configuration config = getResources().getConfiguration();
    DisplayMetrics metrics = getResources().getDisplayMetrics();
    config.locale = Locale.SIMPLIFIED_CHINESE;
    getResources().updateConfiguration(config, metrics);
}
其中android:configChanges="locale"是关键。当然如果你不使整个应用程序都编程中文,那么不用继承Application,直接在继承Activity的类中添加第一步的方法即可。当然别忘记在Activity标签中添加android:configChanges="locale"。


注:android:configChanges可以设置很多属性,具体属性如下:

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

AndroidManifest.xmlApplication设置为如下:

<application
    android:name=".FunctionApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:configChanges="locale" >

第三步,添加相应权限:

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/155c281ea4470b1d2307cff950ef534c.html