安卓系统添加字体库和修改系统默认的字体

由于项目需要,需要将第三方提供的.ttf字库文件编译至系统源码中,在百度上找了好久,都没有找到想要的,最后还是Google解决了问题,这里作下记录。

(一)首先说怎么把字体库添加到设备

Reference: 
http://stackoverflow.com/questions/9627806/android-add-custom-fonts-to-system

其实Reference 中介绍的方法,已经非常简单明了,无需赘述,但这里还是将自己的实践记录一下,顺便备注一下需要注意的地方,方便自己以后查阅学习。

Step1:

Copy custom font .ttf into frameworks/base/data/fonts

很简单,就是copy待添加的 Xxx.ttf 文件到 ../LINUX/Android/frameworks/base/data/fonts 目录下

Step2:

Modify framworks/base/data/fonts/Android.mk ,Add your custom font into list of ‘font_src_files’

修改同目录下的Android.mk文件,将Xxx.ttf文件添加到‘font_src_files ’,具体如下:

font_src_files := \ 
Roboto-Regular.ttf \ 
…. 
AndroidClock_Solid.ttf \ 
Xxx.ttf \

这里要注意的是,‘font_src_files’在Android.mk文件中有多处定义,要注意比对,不要找错位置,一般在上面那段代码上面会有一段如下的注释:

# Build the rest of font files as prebuilt. 
# $(1): The source file name in LOCAL_PATH. 
# It also serves as the module name and the dest file name.

相信如果看明白了这段注释,也就该大概知道添加在这里的原因了吧。

Step3:

Modify frameworks/base/data/fonts/fonts.mk ,Add your custom font into list of PRODUCT_PACKAGES

修改同目录下的fonts.mk文件,在PRODUCT_PACKAGES末尾添加Xxx.ttf文件,如下:

PRODUCT_PACKAGES := \ 
DroidSansFallback.ttf \ 
… 
AndroidClock_Solid.ttf \ 
Xxx.ttf \

Step4:

在frameworks/base/data/fonts$ 单编,执行mm

Step5:

Check 是否成功

Rebuild 之后,如果编译成功,在out/target/product/msm8610/system/fonts 会有Xxx.ttf文件,反之则可能并未成功。 
注意:/product 下的/msm8610 这个目录跟平台有关,不同的平台会是不同的目录,例如有可能是 
out/target/product/generic/system/fonts 等。


Step6:检查out/target/product/msm8610/system/fonts 有Xxx.ttf文件,push到设备,在设备上查看即可


致此,就将添加自定义.ttf字库文件到系统的过程走完了。要注意的是,这些步骤仅仅只是将.ttf文件编译进了系统,至于怎么使用,那就是另外一回事了

(二) :由于添加到字体库都显示的英文,不知道他是什么字体,下面我们可以改字体库的名称

如何修改字体在系统中显示的名称  ??

  Font Creator是一款优秀的国外软件,主要功能是修改、制作字体库。但由于制作中文字库工作量太大,所以通常情况下,个人很少用它来制作字库。  该软件目前有汉化版本推出,大家可以到网上自行搜索。  不少中文字体在系统中显示的名称是英文,有的朋友想把它显示的名称改成中文以方便查找,此时Font Creator就可以派上用场了。  下面以Windows XP操作系统、Font Creator 5.0英文版为例,简要介绍下如何修改字体在系统中显示的名称。 先以英文字体Kabel Medium BT为例。  安装并打开Font Creator,单击“File(文件)—Open(打开)—Installed Font(已安装的字体)或者Font File(字体文件)”,打开需要修改的字体文件。打开字体文件后,单击“Format(格式)—Naming(命名)”,在Naming(命名)窗口中,字体的相关信息,比如名称、版本、版权等,便呈现在我们面前,此时即可以对这些信息进行任何修改。修改字体在系统中显示的名称,只须修改“Include font family name(包括字体家族名称)”这一项,完成后单击“OK”,然后保存即可。关于Naming窗口中各项信息与Windows系统的字体查看器窗口中显示的信息之间的对应关系,见图: 

注意:改过后,重新替换frameworks\base\data\fonts下的字体库,把改过名字的放进去,重现编译:

在frameworks/base/data/fonts$ 单编,执行mm,然后push就OK了!

参考文章(一):http://blog.csdn.net/CrystalDestiny/article/details/50986888
参考文章(二):http://blog.csdn.net/wwwsq/article/details/8207762
参考文章(三):http://wenku.baidu.com/link?url=gPsk5zNHpejStHf3hjgwGKYlnwEOviA2UH4WvOfiVPv9BYAJlY7P9MYem0Z1VFrq1nmEISt6559XU-YVF1aAJXWrV_ZMGypw4sjaehswKRW

(三)修改系统默认的字体

  1,修改myandroid\frameworks\base\data\fonts\system_fonts.xml文件
,2,修改完成后   adb push Z:\myandroid\frameworks\base\data\fonts\system_fonts.xml   /system/etc/   记得push到 /system/etc/ 下,然后reboot就可以看到效果啦

参考文章,里面有字体库加载原理,如何修改默认字体,删除不想要的字体等等:
http://chenggoi.com/2015/01/07/Android_Fonts_Customizing/

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要更Python Matplotlib的默认字体,可以按照以下步骤进行操作: 1. 首先,需要确定要更为的新字体。可以选择系统上已安装的字体。 2. 导入必要的库,括matplotlib和font_manager。 3. 使用font_manager库的findfont函数来找到当前使用的matplotlib字体文件的位置。 4. 将找到的字体文件路径作为参数传递给font_manager库的FontProperties类,创建一个新的字体属性对象。 5. 使用matplotlib库的rcParams属性来设置全局字体属性。将字体属性对象作为参数传递给rcParams的font属性。 下面是一段示例代码,用于更Python Matplotlib的默认字体为"SimSun": ``` import matplotlib as mpl import matplotlib.font_manager as fm # 确定要更字体 new_font = 'SimSun' # 找到当前使用的matplotlib字体文件的位置 current_font = mpl.rcParams['font.family'][0] font_path = fm.findfont(current_font) # 创建一个新的字体属性对象 new_font_properties = fm.FontProperties(fname=font_path).copy() new_font_properties.set_family(new_font) # 设置全局字体属性 mpl.rcParams['font.family'] = new_font_properties.get_family() # 测试例子 import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.xlabel('横轴') plt.ylabel('纵轴') plt.title('示例图') plt.show() ``` 将上述代码保存为.py文件并运行,就可以更Matplotlib的默认字体为"SimSun"。 ### 回答2: 要更Python Matplotlib的默认字体,可以按照以下步骤进行: 1. 首先,我们需要查看当前Matplotlib所使用的默认字体。可以使用以下代码来获取默认字体的名称: ```python import matplotlib.pyplot as plt print(plt.rcParams['font.family']) ``` 2. 接下来,我们需要找到想要设置为默认字体字体名称。可以在电脑上安装其他字体,并使用以下代码列出所有已安装的字体: ```python from matplotlib.font_manager import fontManager fonts = [f.name for f in fontManager.ttflist] print(fonts) ``` 3. 选择一个你希望设置为默认字体字体名称。将其作为字符串传递给以下代码: ```python font_name = 'Arial' # 将'Arial'替换为你想要的字体名称 plt.rcParams['font.family'] = font_name ``` 现在,你已经成功地更了Matplotlib的默认字体为新选择的字体。 请注意,上述步骤仅适用于更Matplotlib的默认字体。在使用Matplotlib绘图时,你仍然需要单独为每个文本对象设置字体。 ### 回答3: 在Python的matplotlib库中,可以通过更默认字体变图表和图形的字体样式。这对于让图表更加美观和符合个人需求很有帮助。 首先,需要导入matplotlib库和font_manager模块。然后,使用font_manager模块的findfont函数来定位当前使用的字体文件路径。可以通过该函数来查找并确认当前默认字体。 接下来,我们可以调用font_manager模块的get_fontconfig_fonts函数来获取系统中安装的字体列表。 然后,使用font_manager模块的FontProperties类来设置新的默认字体。可以使用该类的set_family方法设置字体名称,然后使用matplotlib库的rcParams属性来将新字体设置为默认字体。例如,可以将字体设置为“SimHei”,一个常用的中文字体。 最后,重新绘制图表或图形即可看到使用了新的默认字体。 以下是修改默认字体的示例代码: ```python import matplotlib.font_manager as fm import matplotlib.pyplot as plt # 找到当前默认字体 default_font_path = fm.findfont(fm.FontProperties()) # 获取系统中的字体列表 font_list = fm.get_fontconfig_fonts() # 设置新的默认字体 new_font_properties = fm.FontProperties() new_font_properties.set_family('SimHei') plt.rcParams['font.sans-serif'] = new_font_properties.get_name() # 重新绘制图表 plt.plot([1, 2, 3, 4]) plt.xlabel('横轴') plt.ylabel('纵轴') plt.title('示例图表') plt.show() ``` 上述代码中,我们通过设置'font.sans-serif'属性将默认字体设置为'SimHei',并重新绘制了一个简单的示例图表。 通过以上步骤,我们可以更matplotlib的默认字体,以便我们按照自己的喜好和需求制作图表和图形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值