`
olunx
  • 浏览: 15526 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android下音标字体的相关问题

阅读更多

在做iRemember的音标功能时,发现在windows下能正常显示音标的字体,到了android下完全不起作用,一开始还以为是自己的代码、格式或者编码问题,但后面发现原来不是。于是谷歌一番,谁知道没啥结果,最后在linux类的论坛的一张帖子里找到了解决办法,于是在上课的时候不务正业的解决了这个问题。最后顺手做了个《轻轻松松背单词》词库的音标字体。

 

帖子地址:http://www.linuxsir.org/bbs/thread363915.html

 

下面总结一下自己的解决方法。

 

Kingsoft Phonetic Plain(下面简称KPP)是金山词霸自带的音标字体,可是当我们把它放到android系统下用时,很多音标就不能显示出来。

 

下面是自己的一点看法,不是专业的,但能解决问题就行了。

 

造字的时候,每个字体都要遵循特定的一张字体映射符表,好比有个特定的专们给字符用的座位表。KPP字体把音标符写在了微软专用的区域,也就是说KPP的音标符全部坐到了微软专用的座位上。

 

而我android才不去管你座位上坐的是谁,所以找对应的字符时,不会去你微软的专区找,只在拉丁文区找。这就导致在android下KPP音标不起作用的结果。而我们想要KPP在linux下起作用,那怎么办,只好自己给它换座位了。

 

有个软件叫FontForge,可以用来修改字体内部的字符的位置,附件有windows版的安装文件。

 

原来的KPP字符表结构:

 

FontForge打开后,拖动滚动条到表中比较靠后的位置,就可以见到下表了。

 

 

我们只需对照KKP的音标映射结构,把音标符们搬到如下位置即可。从原表中第二行的空格开始,选中所有音标字符,剪切到字符表中的如下位置,在表开头的地方,从第二行的空格开始,选中同样大小的地方,然后粘贴,另存字体即可。

(注意两张图片红色圈起的地方。)

 

修改后的KPP字符表结构:


 

这样修改后的自己即可在android下正常使用,理论上在linux下也一样了,我没试了。

 

本文说得比较简洁,可能会表达不到位,建议各位还是自己试试,不用我多解释。

  • 大小: 28.4 KB
  • 大小: 32.4 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics