Android应用中Shantell Sans可下载字体无法加载问题求助
解决Shantell Sans作为Android可下载字体无法加载的问题
问题原因
Shantell Sans属于可变字体(Variable Font),这类字体包含多个可变设计轴(如字重、间距、风格等),Google Play服务的字体提供器无法仅通过字体名称Shantell Sans匹配到具体的字体实例。而你测试的Hi Melody、Patrick Hand是静态字体,单名称即可唯一识别。
解决方案
修改res/fonts下的字体配置XML,在fontProviderQuery中补充明确的字体参数即可:
方法1:指定字重参数
在字体名称后添加字重值(比如常规字重400):
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto" app:fontProviderAuthority="com.google.android.gms.fonts" app:fontProviderPackage="com.google.android.gms" app:fontProviderQuery="Shantell Sans:400" app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"> </font-family>
如果需要其他字重,可替换为对应数值(如300、500、700等)。
方法2:使用字体的PostScript名称
直接使用Shantell Sans可变字体的PostScript名称,该名称包含所有可变轴标识:
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto" app:fontProviderAuthority="com.google.android.gms.fonts" app:fontProviderPackage="com.google.android.gms" app:fontProviderQuery="ShantellSans[BNCE,INFM,SPAC,wght]" app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"> </font-family>
验证说明
修改后重新运行应用,即可正常加载Shantell Sans字体。Google Fonts的可变字体均需要此类明确的查询参数,才能被Android可下载字体服务正确识别。
内容的提问来源于stack exchange,提问作者EstevaoLuis
相关产品推荐
相关产品推荐

