我有一个ttc
font
系列文件(在Mac上打开时可以看到),我想将其中一种样式设置为默认font
并进行一些更改textView
中的字体与该字体家族的另一种样式。
在此post和此post中,我用这些答案尝试了很多事情。
我也已经读过这个documentation。但这对我没有帮助。
在尝试的每个答案上,我都会遇到不同的错误,例如找不到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