Библиотека каллиграфии chrisjenx не работает
Я сделал то, что его документация поручил при настройке шрифта по умолчанию:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupDefaultFont();
setContentView(R.layout.activity_main);
setupToolbarAndNavigationDrawer();
}
public void setupDefaultFont() {
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/OpenSans-Regular.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
}
Я также разместил шрифты в assets/fonts
, но безрезультатно.
Roboto по-прежнему отображается как шрифт по умолчанию, а не Open Sans. Я попытался применить его вручную один за другим к каждому TextView
, но все равно это не работает.
есть идеи, почему это не работает?
подробнее: (в случае, если это полезно) Моя мини-версия-15, а targetSdkVersion-22. Это мои зависимости:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'de.hdodenhof:circleimageview:1.2.1'
compile 'uk.co.chrisjenx:calligraphy:2.1.0'
}
и это пользовательская тема, которую я использую.
<resources>
<style name="myIIT_theme" parent="Theme.AppCompat">
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorPrimary">@color/primary</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:windowBackground">@color/tertiary_dark</item>
<item name="android:activatedBackgroundIndicator">@drawable/selected_drawer</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>
2 ответов
чтобы конфигурация вступила в силу, вы должны настроить шрифт по умолчанию в методе onCreate () вашего custom приложение класс, а не в деятельности.
кроме того, инструкции в https://github.com/chrisjenx/Calligraphy скажем, чтобы ввести в контекст, переопределив метод в активность следующим образом:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
наряду с ответом @Theo убедитесь, что вы зарегистрировали свое пользовательское приложение в Манифесте
<application
android:name=".MyApplication" <----------- HERE
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">