Android显示音标 [ɪmˈpɪəri:əs]

比如:http://www.iciba.com/imperious/,那么音标是:

     [ɪmˈpɪəri:əs]

怎么显示它,这是个问题。

下面图是不正确的显示音标(左)和正确显示的截图:

imageimage

下面说说如何解决的。

 

左图是直接复制iciba的音标到Android TextView的text属性中的结果。出现方块乱码的原因是,比如ɪ在系统字体里没有对应的字体。

google查了一下,需要一个金山的音标字体。一般可以通过关键字kingsoft_phonetic_ue.ttf查到。这是经过处理的金山字体,否则也无法使用。原始出处是linuxsir.org/bbs里的帖子。

该字体文件,我是从:http://code.google.com/p/scrollwordad/的项目中得到的。在命令行下:

1svn checkout http://scrollwordad.googlecode.com/svn/trunk/ scrollwordad-read-only

 

该文件就在assets/font目录下,名称为phonetic.ttf

然后,要注意,音标不能用上述的直接复制的办法。要用类似下面的ascii码表示:

Im5pIEriEs

其中I就会在该字体中显示ɪ,5是重音符号。

下载的字体文件放置在android项目的assets/font目录下即可。

另外,要为TextView设置如下属性,将字体设置给它:

1wordTextView=(TextView) findViewById(R.id.wordTextView);
2wordPhoneticTextView=(TextView) findViewById(R.id.wordPhoneticTextView);
3Typeface mFace = Typeface.createFromAsset(getAssets(), "font/phonetic.ttf");
4wordPhoneticTextView.setTypeface(mFace);

 

这样就可以正常显示字体了。

转载于:https://www.cnblogs.com/renkangke/archive/2013/04/23/3036933.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在推上fo了个toefl单词机器人,没想到很多单词的音标显示成了小方块,那就是android默认的英文字体对某些英语国际音标不支持了,当然我的Galaxy S刷了第三方ROM的,不过从网上的帖子来看,官方的字体存在一样的问题,总而言之是字体的问题了。 也搜了一些帖子,但没有很好的解决方案,默认的英文字体还是挺美观的,只是某些英语音标的编码位上缺失了相应的字符而已,Anroid使用Java作为默认开发环境,那默认的字体也应该是使用UNICODE UCS编码的,事实证明的却如此。那就很简单了,强大的字体编辑工具FontForge派上用场了。 Ubuntu仓库里面的版本太低了,可以使用GetDeb仓库来安装最新版本的FontForge。用FontForge打开Android默认的英文字体DroidSans.ttf,果然国际音标编码区域空空如也,英语音标现实不完全也就一点儿也不奇怪了。从国际音标wiki上查找到了这写符号的UNICODE编码,从DejaVuSerif.ttf和Gothic.ttf这两个字体里面提取了对应的字形(glyph)插入到DroidSans.ttf相应的BMP(Basic Multilingual Plane)编码位上。当然只补充了英语音标会用到的字符,包括ɑ,ɒ,ɔ,ə,ɛ,ɜ,ɪ,ɵ,ʃ,ʌ,ʒ,ʤ,ʦ,ʧ这几个常用音标字符。默认的字体竟然连重音(primary stress)和次重音(Secondary stress)这两个符号都没有,一并补齐了。 将制作好的字体覆盖Android默认英文字体/system/fonts/DroidSans.ttf,当然需要root权限,再看英语音标显示的相当完美了,google dictionary里面的音标也完全没有问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值