序
在 Android 下使用自定义字体已经是一个比较常见的需求了,最近也做了个比较深入的研究。
那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以我决定将它们拆分一下,分几篇来详细的讲解。主要会是一些常用的替换字体的方案,最后还会介绍一些全局替换的方案,当然也会包含最新的 『Fonts in XML』的方案。
期待你持续关注。
本篇是本系列的第九篇,之前已经发布的文章,有兴趣可以先看看。
Android 字体修改概述|开篇
修改字体需要了解 Typeface 的所有细节
简单粗暴的方式,修改字体
利用反射,修改全局字体
利用 AppCompatDelegate ,全局替换全局字体
通过修改 LayoutInflater,全局替换字体!
自定义属性,支持多个字体文件!
Android 可下载字体,Font in xml!
一、前言
之前已经介绍了很多种,快速、低入侵的替换全局字体的方式。但是大多数情况下,我们需要实现的功能,一定已经有现成的实现方案。
本文就介绍一个 Github 上,比较火的全局替换字体的开源库,差不多阅读文档加集成,一个小时全局替换字体不是梦。
这个开源替换字体库就是 Calligraphy:
https://github.com/chrisjenx/Calligraphy
二、如何使用Calligraphy
既然是要接入开源库来全局替换字体,先来看看它可以实现的效果。
接下来,我们开始一步步集成它。
2.1 添加 Gradle 依赖
Calligraphy 支持 Gradle 和 jar 的接入方式,这里使用 Gradle 来接入。
2.2 添加字体文档到项目内
Calligraphy 支持的文件,可以放在assets/
目录下,当然,我们可以再在其中建立一个文件夹来专门的存放字体文件。