Android установить шрифт по умолчанию и семейство шрифтов из шрифта ttc - PullRequest
1 голос
/ 11 июля 2019

У меня есть семейный файл 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

...