1. 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
2. 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的字體整體替換,效果顯著。更多相關信息可參閱相關鏈接。
3. 瀹夊崜杞浠跺悕縐頒慨鏀瑰畨鍗撳悕縐頒慨鏀
濡備綍淇鏀瑰畨鍗揂PP鍖呭悕錛
姝ラゅ備笅錛
1銆侀夋嫨浠繪剰涓涓獮PP鍙嶇紪璇戣蔣浠訛紝涓洪伩鍏嶅箍鍛婂珜鐤戱紝灝忕紪鍦ㄨ繖閲屽氨涓嶆帹鑽愪嬌鐢ㄤ粈涔圓PP鍙嶇紪璇戣蔣浠跺暒錛屽ぇ瀹跺彲浠ユ悳緔銆傛垜浠鐢ˋPP鍙嶇紪璇戣蔣浠舵墦寮浣犳兂瑕佷慨鏀圭殑APP銆
2銆佹墦寮AndroidManifest.xml錛孉PP鐨勫寘鍚嶅氨璁板綍鍦ㄨユ枃浠朵腑銆傚湪AndroidManifest.xml涓錛屾悳緔"package=",璇ュ弬鏁拌板綍APP鎶ュ悕銆侫PP鐨勬姤鍚嶅潎浠com.寮澶
3銆佸皢鍖呭悕鏇挎崲鎴愭垜浠鎯寵佹敼鐨勫悕瀛楋紝com.澶翠笉鑳戒慨鏀癸紝寤鴻淇鏀規渶鍚庝竴涓瀛楁點
4銆佸皢淇鏀瑰ソ鐨凙ndroidManifest.xml淇濆瓨錛岀紪璇戞垚APP鍗沖彲錛岃繖鏍鋒垜浠淇鏀瑰ソ鐨勭▼搴忓氨鏄鏂扮殑鍖呭悕鍟︼紒
涓鍔9p鎬庢牱閲嶅懡鍚峚pp錛
涓鍔9p涓嶅彲浠ラ噸鍛藉悕app錛岀郴緇熻劇疆錛屼笉鑳戒漢涓轟慨鏀圭殑銆
鍦ㄥ栬傝捐′笂錛屼竴鍔9Pro寤剁畫浜嗚繃鍘誨囧彈濂借瘎鐨勪笁孌靛紡鎸夐敭浠ュ強涓璐鑸掗傛墜鎰熸墡瀹炵殑鎸夐敭鎵嬫劅錛屽苟涓斿湪澶栬傝捐′笂錛岄氳繃濞寸啛鐨勫伐鑹轟互鍙婇珮絝鐨勫搧璐ㄤ負鏈鴻韓娉ㄥ叆浜嗘柊鐨勮捐¤璦錛岃╀竴鍔9Pro鐨勬墜鎰熷啀嬈℃彁鍗囦簡涓涓鏂扮殑楂樺害銆傜敱姝わ紝涓鍔9Pro鍙浠ヨ存槸涓鍔犲湪璁捐$編瀛︿笂鐨勪竴浣嶉泦澶ф垚鑰呫
濡備綍淇鏀瑰畨鍗撳簲鐢ㄥ浘鏍囧拰紼嬪簭鍚嶇О錛
1銆侀栧厛鎶夾PKEditor瀹夎呭埌瀹夊崜鎵嬫満涓婏紝鐒跺悗鎵撳紑瀹冿紝閫夋嫨絎浜屼釜閫夐」錛氶夋嫨涓涓搴旂敤浣滀負APK錛岀劧鍚庢壘鍒伴渶瑕佷慨鏀瑰悕縐板拰鍥炬爣鐨勫簲鐢ㄣ
2銆佷笅闈㈡槸榪欎釜鎯婁漢鐨勮繙紼嬫帶鍒舵紨紺烘晥鏋滅殑紺轟緥錛岄夋嫨瑕佷慨鏀瑰拰寮瑰嚭涓嶅悓璧勬簮鐨勪慨鏀規ā寮忕殑搴旂敤紼嬪簭錛岄夋嫨絎涓変釜甯歌佺紪杈戱紝榪欐剰鍛崇潃緙栬緫鍏鍏卞睘鎬с
3銆佷慨鏀瑰簲鐢ㄧ▼搴忓悕縐板拰鍚鍔ㄥ櫒鍥炬爣錛屽嵆搴旂敤紼嬪簭鍚嶇О鍜屽浘鏍囥傚煎緱娉ㄦ剰鐨勬槸錛屽浘鏍囪淇鏀逛負閫夋嫨錛巔ng鏍煎紡鍥懼儚銆備負浜嗚幏寰楁洿濂界殑鍥炬爣鏁堟灉錛屾渶濂戒嬌鐢144*144灝哄哥殑娓呮櫚鍥懼儚銆備慨鏀逛繚瀛樺簲鐢ㄧ▼搴忋
4銆佷繚瀛樺悗錛屾偍鍙浠ョ湅鍒版柊錛巃pk鏂囦歡鐨勪綅緗銆備負鏂逛究璧瘋侊紝鎮ㄥ彲浠ョ洿鎺ュ畨瑁呭拰瑕嗙洊鍘熷嬪簲鐢ㄧ▼搴忋備緥濡傦紝鍗曚釜搴旂敤紼嬪簭鏃犳硶鐩存帴瑕嗙洊瀹冦傛偍鍙浠ュ湪瀹夎呮柊搴旂敤紼嬪簭涔嬪墠閫夋嫨鍒犻櫎鎴栧嵏杞藉師濮嬪簲鐢ㄧ▼搴忋傚傛灉鐢熸垚鐨勫簲鐢ㄧ▼搴忔嫻嬪埌瀹夎呯晫闈㈠苟涓斿彲浠ュ拷鐣ュ畠錛屽垯鍙鑳戒細鍑虹幇椋庨櫓璀﹀憡銆傝繖鏄鍥犱負apk鐨勭懼悕宸叉洿鏀癸紝鍥犳ょ郴緇熷皢媯嫻嬪埌鎻愮ず銆
5銆佸畨瑁呭畬鎴愬悗錛岃繑鍥濧ndroid緋葷粺鐨勪富鐣岄潰錛屼慨鏀瑰悗鍙浠ョ湅鍒板簲鐢ㄧ▼搴忓悕縐板拰鍥炬爣銆傚傛灉鏄緋葷粺搴旂敤紼嬪簭錛屽垯闇瑕佸叿鏈塺oot鏉冮檺鎵嶈兘瀵瑰叾榪涜屼慨鏀廣傚綋鐒訛紝APK緙栬緫鍣ㄤ笉浠呭彲浠ヤ慨鏀瑰悕縐板拰鍥炬爣錛屼緥濡傜紪杈戝拰淇鏀瑰叾浠栬祫婧愶紝瀹冨逛簬鏌愪簺搴旂敤紼嬪簭鍒犻櫎鍜岄樆姝㈠箍鍛婁篃闈炲父鏈夌敤銆
Android紼嬪簭涓鎬庢牱淇鏀笰PP鐨勫悕瀛楋紵
1銆侀栧厛紜淇濆凡緇忓緩絝嬩簡妯℃嫙鍣
2銆侀栧厛淇鏀筧ctivity_main.xml錛屾妸鍐呭瑰啓鍦╝ndroid:text=""涓錛屾垜瑕佷慨鏀圭殑鏄鍥句功綆$悊緋葷粺錛屽彲浠ラ氳繃鏇存敼android:textSize="20px"鐨勬暟鍊礆紝鏇存敼鈥滃浘涔︾$悊緋葷粺鈥濆瓧浣撶殑澶у皬銆
3銆佷笅闈㈣佺敓鎴怉PP鐨勫悕瀛椾箣鍓嶉粯璁ょ殑灝辨槸宸ョ▼鍚岰hapter6錛岀幇鍦ㄨ佷慨鏀規垚BookSystem錛屽湪string.xml涓淇鏀逛唬鐮併
閫氳繃淇鏀箂trings.xml涓鐨勪唬鐮乻tringname="app_name">BookSystem/string>錛屾渶鍚庡嚭鐜頒簡甯屾湜鍑虹幇鐨勭粨鏋溿
娉ㄦ剰浜嬮」
淇鏀逛唬鐮佹椂瑕佷弗璋錛屼粩緇嗘鏌ヨ嚜宸辯殑浠g爜錛屼互闃插嚭閿欙紝
淇鏀瑰畬涔嬪悗璁板緱瑕乸roject-clean鍜屾瘡嬈¤繍琛屾椂瑕佹寜runas-androidapplication鐨勬ラゆ潵榪涜屻
鎬庝箞鏇存敼搴旂敤鍚嶅瓧鍜岄殣鈃忥紵
濡傛灉鏄瀹夊崜鐢ㄦ埛鐨勮瘽鍙浠ヤ笅杞戒釜X-鍒嗚韓鎴栬匵-Phone銆傛妸瑕侀殣鈃忕殑杞浠跺煎叆鍒癤-鍒嗚韓鎴栬匵-Phone涓錛屽啀鎶婂栬竟鐨勮蔣浠跺師杞浠跺嵏杞藉氨琛屻俋-鍒嗚韓鎴栬匵-Phone榪樻湁浼瑁呮垨鍔犲瘑鍔熻兘錛屽彲浠ュ緢濂界殑淇濇姢浣犵殑闅愮併傚傛灉浣犱笉鍒犻櫎鍘熻蔣浠朵篃鍙浠ュ綋浣滃弻寮鐢ㄣ傞櫎姝や互澶栬繕鍙浠ラ殣鈃忚仈緋諱漢錛屾ラゅ拰闅愯棌杞浠跺樊涓嶅氥