本帖最后由 路杨_MT 于 2014-12-31 12:03 编辑
EMUI3.0的那些事 -- 第三方字体全覆盖教程 |
[ 路杨_MT 原创教程,转载请注明,谢谢。]
EMUI3.0出来时间也不短了,P6也稳定版了, 3.0 界面漂亮,但是大家总有点追求个性。比如官方主题APP下载的字体不能替换英文数字,桌面天气插件不透明等等。
俺作为P6玩家之一,也自己研究了研究,并乐于分享。于是乎,就有了这2个帖子:
- 字体分享之适合于EMUI3.0的中英文字体-方正幼圆
- 透明天气、华为标导航条之官方P6_EMUI3.0默认主题修改版
然而,俗话说,授人以鱼,不如授之以渔。方便大家自己改字体,俺就唠叨唠叨。
1。先说安卓字体机制:
简单的说说安卓4.0 以后版本的字体定义: 在安卓早期版本中,英文(数字)为 DroidSans.ttf ,中文字符为 DroidSansFallback.ttf。 而在后期的版本中,英文(数字)其实是 Roboto-Regular[Bold,thin, Italic].ttf ,而非 DroidSans 系列,扩展字符不变依然为DroidSansFallback.ttf 。 而华为的EMUI 3.0 系列, 在加载非英文字符是根据手机语言设定加载的是 DroidSansChinese.ttf 而非一成不变Fallback。
2。再说华为主题app下载字体字体替换机制:
华为主题app下载字体只改中文,而不覆盖英文(数字),貌似就简单了。 程序仅对下载的单一字体,改名为 DroidSansChinese.ttf 替换回系统内,这样,显然就是只替换中文喽。 要完整替换,则至少需要同时替换 Roboto-Regular.ttf。这样才能全覆盖。
3. 解决方案:
分析了上面的原因。我们知道要完全覆盖中英字母的字体应该至少两个 (上面的原理有删减,标准、加粗、斜体也可以来自不同字体):
- Roboto-Regular.ttf [实现英文字体和字母]
- DroidSansChinese.ttf [中文]
我们来分析小米(miui)是怎么用一个字体完成全覆盖的? 难道自己找了一个英文字体? 我下载了N个可以完全覆盖字体的miui主题分析知道。 其只不过把 DroidSansFallback.ttf 复制了一份命名为Roboto-Regular.ttf 一起替换了而已。 OH, no........
原来就是这么简单。。。。。汗一个。
那么我们用主题。so easy. 最笨的办法就是用华为主题文件和小米一样把一个字体文件复制为至少2个,替换系统。 华为主题替换字体的原理很粗暴,会在应用主题的情况下,把其 fonts 目录下的所有字体原封不动的覆盖到系统fonts下(其实miui也一样,哈哈)。 接下来我们步入正题。正式用hwt(华为主题文件)替换全部字体。
4. 解决之道华为主题:
华为的主题文件其实是 zip 文件, 随便找一个你喜欢的主题,后缀改成zip,打开, 其下建立 fonts 目录,把你喜欢的字体改成 DroidSansChinese.ttf 和 Roboto-Regular.ttf 放进去。
另外,制作缩略图: pic_font_default.jpg 大小为332x182也放在 fonts 下。(这个将作为设置-》字体中换字体的预览图片)
抓图示意如下:
编辑主题根目录下的 description.xml ,示意如下:
大家注意我图片中如下代码:<这是上面配置文件中的关于字体的关键代码,提醒三点注意:
其他 主题安装使用 的tips可以去我的帖子 字体分享之适合于EMUI3.0的中英文字体-方正幼圆 看详细过程,也可以下载我做的字体主题,自行替换字体。
附上字体 辛迪下午茶修改版的下载链接: http://pan.baidu.com/s/1dDxS7cP
|