我有一个ttc font系列文件(在Mac上打开时可以看到),我想将其中一种样式设置为默认font并进行一些更改textView中的字体与该字体家族的另一种样式。
在此post和此post中,我用这些答案尝试了很多事情。
我也已经读过这个documentation。但这对我没有帮助。
在尝试的每个答案上,我都会遇到不同的错误,例如找不到font文件,无法为TextView充气(当我启动应用程序时,由于存在font文件我猜)。
我目前的情况是:
我的avenir.ttc文件位于font文件夹下的res文件夹下。
我已将这一行放在我的styles.xml中:
@font/avenir
当我在override文件中Application时,
TypeFaceUtil.overrideFont(applicationContext, "font/avenir.ttc")
方法:
fun overrideFont(context: Context, customFontFileNameInAssets: String) {
val customFontTypeface = Typeface.createFromAsset(context.assets, customFontFileNameInAssets)
val newMap = HashMap()
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