在Android本地化中遇到问题

时间:2017-07-19 05:14:03

标签: android localization locale

我已经参考了所有建议良好的博客,以实施 Android中的本地化,但仍然无法在我的应用中使用

  • res文件夹

enter image description here

  • build.gradle中使用的库 enter image description here

- 更改区域设置的方法

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);

资产文件夹

enter image description here

请不要知道上面代码中的错误,请有人帮忙。 经测试的设备 - Nexus 5x,小米3s prime

0 个答案:

没有答案