https://download.csdn.net/download/qq_28884137/87505476
有两种方法可以请求下载字体。 Java 代码下载字体,您需要先创建一个 FontRequest 类,例如 :
FontRequest request = new FontRequest(
"com.google.android.gms.fonts", // ProviderAuthority
"com.google.android.gms", // ProviderPackage
query, // Query
R.array.com_google_android_gms_fonts_certs); // Certificates
参数 ,由字体提供程序给出,在这种情况下 以上使用谷歌提供的字体。 第三个参数是有关请求字体的查询字符串。定义查询的语法 由字体提供商提供。ProviderAuthority
ProviderPackage
然后将请求实例传递给 FontsContractCompat 中的方法。requestFont
FontsContractCompat.requestFont(context, request, callback, handler);
下载的字体或错误代码(如果请求失败)将传递给回调。 上面的示例假定您使用的是支持库中的类。有 框架中的相应类,但如果 使用支持库。
您可以在XML文件中声明下载的字体,并让系统为您下载并使用它 在布局中。
FontsContractCompat.requestFont(context, request, callback, handler);
下载的字体或错误代码(如果请求失败)将传递给回调。 上面的示例假定您使用的是支持库中的类。有 框架中的相应类,但如果 使用支持库。
您可以在XML文件中声明下载的字体,并让系统为您下载并使用它 在布局中。
<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="Lobster Two"
app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>
通过在 XML 文件中定义请求的字体并将数组和 元数据标记,您可以避免延迟,直到字体被下载 第一次尝试。preloaded_fonts
<resources>
<array name="preloaded_fonts" translatable="false">
<item>@font/lobster_two</item>
</array>
</resources>
<application >
...
<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" />
...
</application>
注意,该示例使用 Google Play 服务作为字体提供程序,这需要预发布 谷歌播放服务的版本
先决条件
- 安卓软件开发工具包 25
- 安卓构建工具 v25.0.3
- 安卓支持存储库
demo下载连接:https://download.csdn.net/download/qq_28884137/87505476