Android APP 全局字体替换-思源黑体
生活随笔
收集整理的這篇文章主要介紹了
Android APP 全局字体替换-思源黑体
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于字體設置的屬性及替換方式,可以參考如下文章:
- Android字體系列 (一):Android字體基礎
- Android字體系列 (四):全局替換字體方式
- Android官方文檔-XML 中的字體
以上文章已經詳細介紹如何更換字體了,本文僅介紹字體更換的操作及注意事項。
全局更換字體操作流程
如使用思源黑體 font/noto_sans_sc.otf
其他情況處理
完成上一步之后,對應的Activity,包括其中彈出的Dialog中的文本的字體就已經更改了,但是實踐中有一些其他情況需要處理。
Toast 字體替換
使用自定義Toast,然后設置其中 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 處理
發現使用思源黑體之后,TextView 的垂直邊距及行間距出現了問題:
對于上述問題,解決方案如下:
在主題中加入 android:includeFontPadding 的配置,將其值設置為 false
發現是早期的思源黑體字體的問題,下載使用較新版本的 思源黑體 不存在此問題;
字體變體加載過多導致內存溢出問題處理
部分字體存在多種不同字重,如思源黑體存在7中字重的文件,如果全部加載到內存中,則部分VM內存較小的設備會直接OOM崩潰,故只引入normal字重(400)的字體
總結
noto_sans_sc_regular 字體文件拷貝到res/font 目錄,并添加 noto_sans_sc.xml 的字體定義文件:
需要使用 app 的 namespace 確保向下兼容性
總結
以上是生活随笔為你收集整理的Android APP 全局字体替换-思源黑体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux的nohup命令的用法。
- 下一篇: python中memoryerror_解