Android 字体下载

语言: CN / TW / HK

在App开发中,UI设计使用好看的字体是很常见的,但是安卓系统中可以配置的字体就只有sansserifmonospace这三种。

企业微信截图_71742362-30db-46c9-b52a-5b756c3aa824.png

因此,为了符合UI的设计,常见的做法是下载字体放到res/font/文件夹下,然后通过android:fontFamily来更改字体。

企业微信截图_29876bc4-e4e2-4976-9a8e-a5f278812da7.png

但是这么做有一个显而易见的问题,字体文件会导致包体积增大,放两个字体文件一般会让apk增大10M以上。最近在看官方文档,偶然看到一个解决方案:可下载字体

可下载字体

从Android P(28)以及Android支持库26开始,可以使用可下载字体API,通过Android支持库26可以让Android ICE_CREAM_SANDWICH(14) 以上的设备都可以使用可下载字体。

可以通过以下三种方式来使用可下载字体:

  • 通过 Android Studio 和 Google Play 服务
  • 以程序化方式
  • 通过支持库

这边主要介绍下第一种方式,后两种都需要在代码中做额外的实现,有兴趣的可以看看文档。

通过 Android Studio 和 Google Play 服务使用可下载字体

  1. 任意选择一个项目中的布局文件,选中Design模式。

企业微信截图_4fe19d2f-bfea-4d03-852f-0b521b55f966.png

  1. 选中一个TextView,在右侧Attributes栏目中找到fontFamily。

企业微信截图_57436b28-6750-4f8d-a70f-87c1a9da610c.png

  1. 点开下拉框,找到More Fonts。

企业微信截图_4e77d43e-5bc9-4142-b9b9-6054467a44e1.png

  1. 在Resources弹窗中选择自己想要的字体,点ok创建,AS会自动生成并配置选择的可下载字体,然后就可以在android:fontFamily中选择刚配置好的字体了。

企业微信截图_f0dea592-0018-4b69-8df2-39a8f2bae420.png

实测效果:

otf为其他渠道下载的字体,dowanloadable为通过GooglePlay下载的字体。

Pixel 3a XL(有Google Play)

pixel-downloadable-font.png

Mi 8 lite(没有Google Play)

mi8-downloadable-font.png

总结

可以根据实测效果看到,可下载字体在没有GooglePlay的手机上是无效的,并且通过GoogleFonts下载的字体与我们自己下载的字体还是有一定的区别。

如果App主打海外市场,并且GoogleFonts内的字体符合UI设计的需求,那么使用可下载字体是很不错的选择。