在App开发中,UI设计使用好看的字体是很常见的,但是安卓系统中可以配置的字体就只有sans
、serif
、monospace
这三种。
因此,为了符合UI的设计,常见的做法是下载字体放到res/font/
文件夹下,然后通过android:fontFamily
来更改字体。
但是这么做有一个显而易见的问题,字体文件会导致包体积增大,放两个字体文件一般会让apk增大10M以上。最近在看官方文档,偶然看到一个解决方案:可下载字体。
可下载字体
从Android P(28)以及Android支持库26开始,可以使用可下载字体API,通过Android支持库26可以让Android ICE_CREAM_SANDWICH(14) 以上的设备都可以使用可下载字体。
可以通过以下三种方式来使用可下载字体:
- 通过 Android Studio 和 Google Play 服务
- 以程序化方式
- 通过支持库
这边主要介绍下第一种方式,后两种都需要在代码中做额外的实现,有兴趣的可以看看文档。
通过 Android Studio 和 Google Play 服务使用可下载字体
- 任意选择一个项目中的布局文件,选中Design模式。
- 选中一个TextView,在右侧Attributes栏目中找到fontFamily。
- 点开下拉框,找到More Fonts。
- 在Resources弹窗中选择自己想要的字体,点ok创建,AS会自动生成并配置选择的可下载字体,然后就可以在
android:fontFamily
中选择刚配置好的字体了。
实测效果:
otf为其他渠道下载的字体,dowanloadable为通过GooglePlay下载的字体。
Pixel 3a XL(有Google Play)
Mi 8 lite(没有Google Play)
总结
可以根据实测效果看到,可下载字体在没有GooglePlay的手机上是无效的,并且通过GoogleFonts下载的字体与我们自己下载的字体还是有一定的区别。
如果App主打海外市场,并且GoogleFonts内的字体符合UI设计的需求,那么使用可下载字体
是很不错的选择。