我已经参考了所有建议良好的博客,以实施 Android中的本地化,但仍然无法在我的应用中使用
- 更改区域设置的方法
public void setLocale(String lang) {
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
Intent intent = getIntent();
startActivity(intent);
finish();
}
- 使用自定义字体(Lato)
public static void overrideFont(Context context,
String defaultFontNameToOverride, String customFontFileNameInAssets) {
try {
final Typeface customFontTypeface = Typeface.createFromAsset(
context.getAssets(), customFontFileNameInAssets);
final java.lang.reflect.Field defaultFontTypefaceField = Typeface.class
.getDeclaredField(defaultFontNameToOverride);
defaultFontTypefaceField.setAccessible(true);
defaultFontTypefaceField.set(null, customFontTypeface);
} catch (Exception e) {
e.printStackTrace();
}
}
从Application Class
调用此方法overrideFont(getApplicationContext(), "SERIF",
GlobleConstant.LATO_REGULAR);
资产文件夹
请不要知道上面代码中的错误,请有人帮忙。 经测试的设备 - Nexus 5x,小米3s prime