Android系统应用开发(四)系统语言以及添加字体库

本文介绍了如何向Android系统添加自定义语言和字体库。首先,可以通过修改配置文件`languages_full.mk`或`languages_small.mk`来添加新语言。然后,通过编码方式在`LocalePicker.java`中更新语言列表。此外,还详细讲述了将.ttf字体文件编译进系统源码的步骤,包括在Android.mk中添加字体文件,并提到如何修改字体在系统中显示的名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.如何向android的setting语言列表中添加一门语言

第一种:修改配置文件
位置:build/target/product/languages_full.mk| languages_small.mk,这两个文件里头,有PRODUCT_LOCALES := en_US en_GB fr_FR it_IT es_ES es_US 这样的片段,其实setting中语言选择列表的数据源头就来源于此,既然找到了源头,那只要在之后加上想要的语言即可,比如要加越南语 只要在后面加上 “vi_VN”即可。里面都有PRODUCT_LOCALES :=这样的片段,从命名上也可发现一个full一个small,当不需要更多的语言时候,那languages_small.mk里面的语言就可以满足,而且语言少,生成的image所占用的空间也会相对小些,是根据同目录下full.mk里的注释“Get a list of languages. We use the small list to save space on smaller devices.”。一个full.mk的文件,这里面有这样的片段:$(call inherit-product, build/target/product/languages_small.mk),后者路径就是我们要设置的地方。好了,改好后,得整个make下,好多模块都是重新编译。

第二种:编码方式修改
Android里一个listview会对应一个数据数组,那只需在这个数组里按格式添加所需要的数据就行了,目标是com.android.settings.LocalePicker.java,在该文件133行位置做如下修改:

mLocales = new Loc[finalSize+1];
for (int i = 0; i < finalSize ; i++) {
mLocales = preprocess;
}
Locale temp = new Locale("vi", "VN");
mLocales[finalSize] =new Loc(toTitleCase(temp.getDisplayLanguage(temp)), temp);

2. 安卓系统添加字体库

由于项目需要,需要将第三方提供的.ttf字库文件编译至系统源码中,在百度上找了好久,都没有找到想要的,最后还是Google解决了问题,这里作下记录。
(一)首先说怎么把字体库添加到设备
Reference: 
http://stackoverflow.com/questions/9627806/android-add-custom-fonts-to-system
其实Reference 中介绍的方法,已经非常简单明了,无需赘述,但这里还是将自己的实践记录一下,顺便备注一下需要注意的地方,方便自己以后查阅学习。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值