A. android如何高效率的替換整個app的字體
在Android O系統中,使用「Fonts in XML」功能,開發者可以輕松實現整個應用程序字體的全局替換。為了在API 14以上的設備上利用此功能,需引入Support Library 26。在Android Studio中,將字體作為資源文件添加至工程的步驟如下:首先,右鍵單擊項目的app / res文件夾,選擇New > Android resource directory,然後打開下拉菜單並選擇font,輸入font作為File name,點擊OK。注意,字體資源文件夾的名稱必須為font。接著,將字體文件拖放到新的res / font文件夾中,支持的格式有.otf(OpenType)和.ttf(TrueType)。雙擊字體文件可在編輯器中進行預覽。
創建Font family的步驟包括:右鍵單擊項目的res / font文件夾,選擇New > Font resource file,輸入文件名並點擊OK。接著,在此XML文件中定義所有不同的字體版本及其樣式和權重屬性。
在Android布局中使用字體資源,可以給TextView添加字體,或將字體添加至style。打開style.xml文件,設置fontFamily屬性為所需訪問的字體文件。在App的Theme中配置此屬性即可實現整個App的字體替換。
使用Support Library實現Fonts in XML特性時,需要使用app命名空間。在Android Support Library 26.0-beta1版本中,需要同時使用android和app命名空間進行聲明,確保在Android O版本及以下設備上字體能夠被正確載入。
通過代碼控制字體使用,內容均來自Android Developer官網,這里進行了簡單的翻譯。更多內容可以參考:developer.android.com/p...
在開源項目TonnyL/PaperPlane中,已經實現了App的字體整體替換,效果顯著。更多相關信息可參閱相關鏈接。
B. Android更換系統默認顯示的字體使用自定義字體
上一篇 Android 自定義字體,更換系統默認顯示的字體使用自定義字體 有講到怎樣指定控制項顯示指定字體,怎樣整個軟體顯示指定字體,怎樣WebView載入指定字體,但是還留下一個怎樣修改整個系統的默認字體,由於內容較多,所以單獨抽離出來講,由於要操作系統文件,因此需要Root許可權或系統簽名,自己在操作前建議先備份下字體配置文件/system/etc/system_fonts.xml和/system/etc/fallback_fonts.xml,否則操作失敗有可能開機後無法進入桌面,此時就需要將備份的system_fonts.xml推送到對應目錄下並修改為對應的許可權。
system_fonts.xml示範文件
fallback_fonts.xml 示範文件
修改系統默認字體的原理:根據系統字體載入原理可知,我們只需要在路徑 /system/fonts/ 下添加我們自定義的ttf字體文件,然後修改 /system/etc/system_fonts.xml 字體配置文件,按照響應的格式添加一個節點,由於需要系統默認使用該字體,因此該節點需要是根節點familyset下的第一個子節點,系統在system_fonts.xml中找到了該字體的配置,故不會去fallback_fonts.xml 尋找,因此也只需要修改這一個配置文件即可,文件修改成功後需要注意已修改文件的讀寫許可權(否則會沒有效果),為了方便,我們設置全部用戶可讀可寫。
和添加字體相對應,需要先刪除字體文件,然後再刪除 system_fonts.xml和fallback_fonts.xml兩文件中的對應節點,由於我們沒有修改過fallback_fonts.xml文件因此不需要做刪除操作
我的CSDN博客: http://blog.csdn.net/wo_ha/article/details/79202632
C. 在android系統里,怎樣修改系統字體,比如將系統默認字體換成 楷書,等等。。。怎樣變成實現謝謝!
修改字體的方法主要有2類:
一、通過軟體修改android系統字體
這類系統字體修改軟體較多,可以在各大android手機論壇(機鋒論壇等等)里搜索一下,比如《字體替換》這個軟體。
二、手動修改android系統字體
1、首先需要獲取root許可權,然後手機需要安裝類似R.E.explorer這樣的高級文件管理器。
2、將需要替換的字體放置在手機SD卡中,並重命名。重命名按照以下形式命名:
英文字體重命名為:DroidSans.ttf;中文字體重命名為:DroidSansFallback.ttf
3、以R.E.explorer為例,打開該文件管理器後,訪問SD卡中存放替換字體的文件夾,然後選擇需要替換的字體,長按該字體,選擇「復制」。在不關閉R.E.explorer文件管理器的前提下,點擊文件管理器上的返回按鈕,訪問system/fonts文件夾,然後點擊「粘貼」
4、粘貼完成後,需要設置替換文件的許可權。(替換的DroidSans.ttf則設置DroidSans.ttf的許可權,替換的DroidSansFallback.ttf則設置DroidSansFallback.ttf的許可權)長按該文件後,選擇「許可權」,設置許可權。(也可以參考其他文件的許可權配置,和其他文件一樣配置為rw-r--r--)
5、替換完成後,重啟手機
常見問題:
Q1:替換後為什麼部分中文字體是方框?
A1:出現該情況是由於替換字體本身就不支持部分中文漢字的顯示,需要換一個字體。一般微軟雅黑、圓體等常見字體都不會出現該異常情況。
Q2:替換後為什麼英文字體還是原樣?
A2:英文字體和中文字體由兩個字體文件分別管理,如果只替換了中文字體,英文字體就仍然是默認的樣式。
Q3:為什麼沒有替換英文字體,英文字體的樣式也變了呢?
A3:出現該情況,一般是由於替換的中文字體本身就包含了英文字元的樣式。替換這樣的中文字體後,當需要顯示英文時,會顯示中文字體包中含有的英文字元樣式