现在的位置: 首页 > 综合 > 正文

解决Android自带输入法的英文联想问题(Latin和Google输入法)

2013年05月13日 ⁄ 综合 ⁄ 共 864字 ⁄ 字号 评论关闭

  Android的开源给我们带来了很多好处,我们可以随意使用系统自带的程序,在Android 2.2里自带输入法有3个,Latin键盘,Google拼音和OpenWnn。

  目前公司的产品只需要定制Latin键盘和Google拼音,但使用时发现这2个输入法都没有英文联想,Google拼音很早看过代码就知道没有英文联想功能,但Latin键盘没有让我比较奇怪。因为本身就只能输入英文字符,还没有联想那真是太挫了。没办法,只能看代码,看了会发现其实是有联想功能的,读取的字典表ID是R.raw.main,查之...原来字典表里没有单词啊,怪不得没有联想呢,确定了有此功能后就无需再关注代码了,而是把目标转移到字典表怎么生成的。在网上搜索下,没什么结果,然后又在整个系统源码中搜索"main.dict"引用,发现了字典表生成的工具,路径是"$(系统源代码Path)/development/tools/makedict"目录,OK,看看。

  原来此工具是用来把一个准备好的XML文件,生成二进制*.dict文件,XML文件的格式规则如下:

 

<?xml version="1.0" encoding="utf-8" ?>

<wordlist>

  <w f="255">about</w>

  <w f="188">cat</w>

</wordlist>

 

  解释下:"<wordlist>"没有什么说的了是根标签,"<w>"标签代表着一个单词,"f"属性代表这次单词出现的频率,值取:[0-255],255表示出现频率最高,也就是最常用的单词,在联想的时候显示越靠前。

  好了,填了10个单词进去,然后用工具生成新的main.dict替换原来Latin键盘的,编译运行,成功提示单词联想。哈

 

  最后,有件苦恼的事就是得先做单词表的XML文件(花了3个小时),惨啊,在网上搜罗了大约1400多常用词先顶下,以后缺什么再补什么词吧。至于Google拼音的英文联想功能我也是用了main.dict做字典表来新增的。

 

  已把wordlist.xml文件上传到资源里了,嘿嘿

【上篇】
【下篇】

抱歉!评论已关闭.