Библиотека каллиграфии Android: установка шрифта по умолчанию не работает

Я использовал uk.co.chrisjenx:calligraphy зависимость от использования шрифтов из папки ресурсов, однако шрифт по умолчанию не применяется к моему приложению. Я следовал рекомендациям, используемым в других вопросах о стековом потоке, но они не работали, и все решения использовали тот же синтаксис, который я использовал ниже.

Вот мое приложение и путь к шрифту правильный, так как он работает с использованием XML fontpath имущество;

public class App extends MultiDexApplication {

    private static volatile Context instance;

    public static Context get() {
        return instance;
    }
    private static App enableMultiDex;
    public static Context context;

    public App(){
        enableMultiDex=this;
    }
    public static App getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
        instance = getApplicationContext();
        Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                .setDefaultFontPath("fonts/mobilefont.ttf")
                .setFontAttrId(R.attr.fontPath)
                .build());
    }

}

2 ответа

Решение

Оберните контекст деятельности:

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
       1. If you update your project with **API 33** or **Android 13** add below line for calligrapgy library.

  ViewPump.init(ViewPump.builder()
            .addInterceptor(new CalligraphyInterceptor(
                    new CalligraphyConfig.Builder()
                            .setDefaultFontPath("fonts/century_gothic.ttf")
                            .setFontAttrId(io.github.inflationx.calligraphy3.R.attr.fontPath)
                            .build())).build());
Другие вопросы по тегам