Android 8.0开始使用XML表示Font资源,这意味着我们可以像使用R.string.hello那样使用Font资源。
下面会在style中定义字体样式来实现替换App的全局字体样式。
一、建立font文件夹,导入字体样式文件
1、右键res|new|Android Resource directory
2、Resource tyoe选择font,Directory name必须是font,点击OK完成创建,之后可以直接把ttf或者otf字体文件复制进font文件夹。
3。创建style,其中thingold是我导进font文件夹的ttf文件,为瘦金字体
然后修改AndroidMainifest.xml的theme属性即可
android:theme="@style/FontStyle"
运行效果如下:
这是在整个Application应用字体样式的运行结果,当然也能在单独某个Activity下使用字体样式了,同样只需要在Activity的theme属性下更改即可,如下:
二、题外话:font-family
其实上面已经可以完成App内全局字体样式的更改了,下面提一下font-family的使用,可以右键font|Font resource file创建font-family的xml文件,在其中定义多个font字体样式,该xml文件和上面的ttf文件的使用方式是一样的,只是font-family文件是让手机系统选择它能支持的字体样式,即从上往下选择第一个它支持的样式。
如下我定义了两种字体,系统支持pop.ttf的话会选择pop字体,否则就会从上往下检查直至找到它支持的字体样式。
xmlns:app="http://schemas.android.com/apk/res-auto">
app:font="@font/pop" />
app:font="@font/thingold" />
注意:上面的xml文件我使用了两个命名空间,android和app,这是为了能够兼容到API 14,因此每个属性都要重复使用app和android两种命名空间。
最后附上简单的源码:
CSDN传送门
参考: