android的textview显示音标问题解决方法

android系统自带的字体都不支持显示音标,只能自己把支持音标显示的字体加入项目中
在 C:\Windows\Fonts\Segoe UI目录下选择一个常规字体(segoeui.ttf)复制出来放在assets/font/目录下
Typeface mFace=Typeface.createFromAsset(getAssets(),  "font/segoeui.ttf" ); 
youTextView.setTypeface(mFace);
youTextView.setText("text");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值