У меня есть семейный файл ttc
font
(я вижу, когда открываю его на своем Mac), и я хотел бы сделать один из этих стилей по умолчанию font
и изменить некоторые из моих textView
с помощьюдругой стиль этого семейства шрифтов.
Я пробовал много вещей с этими ответами в этом посте и этом посте .
Я также прочитал эту документацию .Но это не помогло мне.
При каждом ответе, который я пробовал, я получал различную ошибку, например, не могу найти файл font
, не могу накачать TextView
(когда я запускаю приложение из-заfont
файл, я думаю).
Моя текущая ситуация такова:
У меня есть avenir.ttc
файл в папке font
в папке res
.
Я поместил эту строку в мой styles.xml
:
<item name="android:typeface">@font/avenir</item>
когда я override
в моем Application
файле:
TypeFaceUtil.overrideFont(applicationContext, "font/avenir.ttc")
метод:
fun overrideFont(context: Context, customFontFileNameInAssets: String) {
val customFontTypeface = Typeface.createFromAsset(context.assets, customFontFileNameInAssets)
val newMap = HashMap<String, Typeface>()
newMap["avenir"] = customFontTypeface
try {
val staticField = Typeface::class.java
.getDeclaredField("sSystemFontMap")
staticField.isAccessible = true
staticField.set(null, newMap)
} catch (e: NoSuchFieldException) {
e.printStackTrace()
} catch (e: IllegalAccessException) {
e.printStackTrace()
}
}
и я получаю следующую ошибку:
Актив шрифта не найден font / avenir.ttc