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杩樻湁浼瑁呮垨锷犲瘑锷熻兘锛屽彲浠ュ緢濂界殑淇濇姢浣犵殑闅愮併傚傛灉浣犱笉鍒犻櫎铡熻蒋浠朵篃鍙浠ュ綋浣滃弻寮鐢ㄣ傞櫎姝や互澶栬缮鍙浠ラ殣钘忚仈绯讳汉锛屾ラゅ拰闅愯棌杞浠跺樊涓嶅氥