https://github.com/XiuKong/ChangeLanguage
1.本身不像维护多个版本在已经有了多语言,但是总难免有恶心的定制版,就是想要什么语言环境下都用他们设定的语言,
在继承Application中create时候
public static void defLanguge() {
if (VersionTools.version == Version.Standard)
return;
String languageToLoad = "ja";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = rs.getConfiguration();
DisplayMetrics metrics = rs.getDisplayMetrics();
config.locale = Locale.JAPAN;
rs.updateConfiguration(config, metrics);
}
<!-- android:configChanges="locale" 修改默认语言 -->
<application
android:name="com.ubtechinc.app.AlphaApplication"
android:allowBackup="true"
android:configChanges="locale"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- android:configChanges="locale" 修改默认语言 需要在Application类中也设置 -->
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
2.这样使用确实可以实现了设置默认语言,但是在有屏幕切换的应用中,屏幕切换后又会加载一遍Configuration 使得加载回跟手机系统语言一致
解决:在application中重写以下方法就可以
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
defLanguge();
}