當(dāng)前位置:
首頁 >
Android APP 全局字体替换-思源黑体
發(fā)布時(shí)間:2023/12/10
61
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Android APP 全局字体替换-思源黑体
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)于字體設(shè)置的屬性及替換方式,可以參考如下文章:
- Android字體系列 (一):Android字體基礎(chǔ)
- Android字體系列 (四):全局替換字體方式
- Android官方文檔-XML 中的字體
以上文章已經(jīng)詳細(xì)介紹如何更換字體了,本文僅介紹字體更換的操作及注意事項(xiàng)。
全局更換字體操作流程
如使用思源黑體 font/noto_sans_sc.otf
其他情況處理
完成上一步之后,對(duì)應(yīng)的Activity,包括其中彈出的Dialog中的文本的字體就已經(jīng)更改了,但是實(shí)踐中有一些其他情況需要處理。
Toast 字體替換
使用自定義Toast,然后設(shè)置其中 TextView 的字體
Typeface font = null;try {font = ResourcesCompat.getFont(context, sCustomFontResId);} catch (Resources.NotFoundException ignore) {Log.e("ToastUtils", "customFont not found: " + sCustomFontResId);}if (font != null) {view.setTypeface(font);view.setIncludeFontPadding(false);}Toast toast = new Toast(context);toast.setView(view);思源黑體的 fontPadding 處理
發(fā)現(xiàn)使用思源黑體之后,TextView 的垂直邊距及行間距出現(xiàn)了問題:
對(duì)于上述問題,解決方案如下:
在主題中加入 android:includeFontPadding 的配置,將其值設(shè)置為 false
發(fā)現(xiàn)是早期的思源黑體字體的問題,下載使用較新版本的 思源黑體 不存在此問題;
字體變體加載過多導(dǎo)致內(nèi)存溢出問題處理
部分字體存在多種不同字重,如思源黑體存在7中字重的文件,如果全部加載到內(nèi)存中,則部分VM內(nèi)存較小的設(shè)備會(huì)直接OOM崩潰,故只引入normal字重(400)的字體
總結(jié)
noto_sans_sc_regular 字體文件拷貝到res/font 目錄,并添加 noto_sans_sc.xml 的字體定義文件:
需要使用 app 的 namespace 確保向下兼容性
總結(jié)
以上是生活随笔為你收集整理的Android APP 全局字体替换-思源黑体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux的nohup命令的用法。
- 下一篇: cordova 更改app版本_Cord