換字體有風險,請務必先做好原機字體備份,出問題了及時換回去!!!
1.蘋果手機換字體
蘋果手機需要越獄,iOS9以後訪問/System/Library/Fonts文件夾,LanguageSupport下的pingfang.ttc就是中文字體,那幾個core文件夾下的就是英文字體,具體可以在網上搜一下,教程多到爛大街,我就不多贅述了。
2.自制安卓字體主題包
如果你是三星等手機,支持apk字體的,可以自己取需要的文件做成相應的主題或者字體包來替換(手機類型太多,具體自己解決),不需要root。
這種方法我是不推薦的,因為每個手機的主題系統和字體包調用系統規則大相徑庭,可能會導緻正常的字體在你的手機上顯示行距字據出現問題、字體上浮或者下沉嚴重等現象,出現這種問題請不要找我,我也無能為力(各種各樣的手機太多了,我不可能全買了給你适配),請自行解決。
3.簡單替換安卓字體
首先要明确知道自己手機調用的中文字體文件和英文字體文件具體是哪些,然後取我提供的文件替換即可。
需要root權限,使用re管理器之類工具,就可以替換,就是我下圖這個app。
如果你是安卓2.x或者4.x,直接從我分享的文件中找到NotoSansSC-Regular.otf這個文件,然後改成DroidSansFallback.ttf(除非你的手機被廠商改過字體,一般就是這個),替換到system/fonts就好了,英文部分我忘了,反正也是直接改名了換。
如果你是安卓5.x或者安卓6.x,常規的系統都可以用NotoSansSC-Regular.otf(如果不是,自己重命名即可)替換你system/fonts下的同名文件,英文也是全盤照搬替換同名文件(小米等手機連英文的文件名字也是用别的,自己舉一反三),需要root。
很多人問,為啥我分享的都是otf後綴,自己手機隻能用ttf之類的,不管手機是不是隻支持ttf吧,其實你可以用電腦或者手機手動改文件的擴展名【otf】,改為【ttf】一樣可以正常用的。
實際上,安卓4.4到7.0都是支持otf的,知道就好了,具體用的話需要自己寫配置,直接随便丢進去當然是不管用的。
4.關于改權限和重啟
如果你是用re管理器,不改權限也可以,因為丢進去的 比你改權限後的權限要多,重啟後就生效了。隻有缺權限才會異常 ,
還有一個可能遇到的場景,覆蓋系統字體文件時,系統檢測到界面正在使用的元素異常改動了,就會自動重啟一下系統界面,這時候的重啟是不完整的,打開一些軟件會閃退,你需要再手動重啟一次,以後就都OK了。
至于遇到字距行距之類的問題,因為我是基于安卓7.1自帶的思源黑來制作的,理論上不是廠商深度定制過的手機,都是能正常用的。如果真的遇到顯示不支持了,恕我能力有限,不可能把所有手機買來專門适配一遍,你隻能自己去調整了。
5.終極完美法·自己寫配置,支持5.x、6.x、7.x
安卓5.0到6.0,控制系統字體調用的文件有兩個,在system/etc下,一個是fonts.xml,還有一個fallback_fonts.xml。前者一直用到安卓7.x,後者是舊版本安卓的過度。
一般來說隻改前者就行,有些細節是後者控制的,我這裡就不細說了。
安卓7.x隻有fonts.xml一個文件了。
以7.0的配置文件示例,6.0的大同小異,原生配置裡是這樣定義中文字體文件的:
(看不清可以點擊看大圖)
上面有四段代碼,比較簡單就能看出分别是指定了簡體中文、繁體中文、日文、韓文調用的字體文件(ttc文件裡包含多個ttf文件,代碼裡的index就是指向ttc内部的ttf)。
顯而易見,我們要實現換字體,其實隻要放進去自己的文件,然後改這裡的代碼來指向那些文件即可(上圖黑色的xxx.otf這種文件名)。
系統是比較智能的,會從上到下匹配,比如我在上面四段上方插入這個:
(看不清可以點擊看大圖)
分别針對簡體、繁體中文,不同weight指定了字體文件。
那麼系統在中文環境下會先識别我插入的代碼,顯示這裡的字體,如果有缺的才會往下讀到系統原來的文件。
我提供的字體裡都有為這個字體配好的fonts.xml文件,原生安卓和一加3/3T手機,隻要是安卓5.0以上的系統都可以直接拿去用,甚至我連卡刷包都做好了,用第三方recovery刷進去,把你手動替換的過程都自動化了。
安卓手機差異化比較大,有些廠商會修改字體的結構,導緻fonts.xml不完全通用,直接丢我的配置文件到非原生系統手機(比如小米),是會出問題的。
我是拿Google原生的系統(Pixel XL)為藍本制作的,舉個例子,如果HTC改了emoji表情的調用方法,替換到HTC裡就可能顯示不出emoji,其他的都正常。
遇到這種問題,請使用專業點的文本編輯器,例如notepad ,打開fonts.xml,以你原機的文件參照我上面說的,把我的配置文件裡相關的段落複制過去,再替換。如果你找不到,就全文搜索“甯靜之雨”,我在代碼裡寫了注釋,方便你找到我改的部分。
大家不需要太深入了解,知道原理後,照着我的配置依樣畫葫蘆就行。
想深入了解的看這裡:
☛「教程」深入解讀安卓字體機制,搞定安卓手機字體替換和粗細分明
想完美效果,一言以蔽之,仿寫我的配置文件,把中英文映射改成我提供的字體文件,再把字體文件丢到system/fonts下,完整重啟一次手機就好了。
,