下载要在Android应用程序中使用的自定义字体

时间:2017-12-15 10:27:29

标签: android android-fonts

我打算避免将字体捆绑到我的Android应用程序中。因此,我想知道字体是否可以动态下载并且可以由我的Android应用程序使用。

我已经知道最近在Android中引入了Downloadable Font concept,但这仅适用于谷歌字体。

我想在我的应用程序中使用这种字体(在应用程序中显示任何文本的地方)。

请注意:

  1. 它不是一个字体应用程序用户可供选择的列表。
  2. 我可以使用默认设备字体启动应用程序,然后从服务器下载自定义字体并在应用程序中使用它

1 个答案:

答案 0 :(得分:1)

根据您的问题,您似乎希望您的应用可以使用该字体,该字体在应用运行时以编程方式下载(而不是与应用捆绑在一起)。

您还说您知道新的Downloadable Fonts功能,但“仅适用于Google字体”。这是不正确的。 sample app确实使用了Google Play服务的内置字体提供程序。但是,根据文档,您还可以使用自己的在线字体提供服务器支持的自己的字体提供程序。

我没有试过这个,但我想你的自定义“FontsProvider”类(扩展ContentProvider)会尊重API 26中引入的FontsContract。当它收到{ {3}},它会从其本地缓存中找到该字体(或者在您正在运行的服务器上找到),然后返回FontRequestTypeface,就像Google Play服务一样。 (再次查看文档 - 您可以选择是否要求证书。)

自定义FontProvider可以捆绑在第三方应用程序中(比如提供字体的字体公司)。但我不明白为什么你不能在自己的应用程序中添加自己的FontProvider,并让它联系你的服务器并自己处理所有的缓存内容。

顺便提一下,如果您对API字体服务用于提供有关字体的信息(包括指向实际文件的链接)的API感到好奇,请参阅FontsContract.FontRequestCallback。在回答另一个与字体相关的问题时,我写了一个here来获取所有字体的列表,然后解析并过滤它,如果您决定编写自己的后端字体提供程序服务,这可能会有所帮助。 / p>

相关问题