一个简单的开头
今天突然觉得自己的APP字体好丑,于是研究了一下如何替换APP的字体,下面先上图把结果跟大家展示一下。
那么话不多说,我们直接开始实现上面的效果,我们都知道android默认是有字体设置的,在xml文件的对应的控件下使用Typeface就可以使用android自带的字体了。
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="墨羽抠图"
android:textSize="20sp"
android:textColor="@color/white"
android:gravity="center"
android:typeface="monospace"/>
但Android提供的四种字体很明显无法满足我们的开发需求,这时候我们就需要用到自定义字体了。
首先,我们需要下载好字体文件,这里推荐一个好用的下载字体网站:https://www.fonts.net.cn/fonts-zh/tag-maobi-1.html
接着,我们需要把文件导入到项目中来,如图所示将项目切换到project模式,在main目录下新建assets文件夹,再新建一个font文件夹,最后把下载的ttf文件拷贝进来。
那么现在我们是不是可以在XML文件下使用typeface来切换字体了呢,先别急,这时如果你满心欢喜的敲下typeface,你依然只能看到那四个默认的字体。
正确的操作如下,我们需要在java文件中进行设置,首先获取到对应的控件,然后启动项目,就可以看到字体已经被替换啦。
title = findViewById(R.id.title);
//此处getAssets()为Activity中的用法,fragment中需要使用getContext().getAssets()
//注意路径"font/YunFengFeiYunTi-2.ttf"需要配置正确,不然无法找到对应的字体文件
title.setTypeface(Typeface.createFromAsset(getAssets(),"font/YunFengFeiYunTi-2.ttf"));
如果你也实现了相应的用法,先别激动,相信有反应快的小伙伴已经发现了,这样设置方法只能对单个的控件生效,那我要对全局进行设置,岂不是要一个一个设置过来了?
当然有更好的办法设置字体啦,但这里我不再做详细讲解了,推荐有需要的同学参考这位大佬的文章,讲解的很清晰