以文本方式查看主题 - 曙海教育集团论坛 (http://peixun0.cn/bbs/index.asp) -- Android应用开发 (http://peixun0.cn/bbs/list.asp?boardid=45) ---- Android输入法开发实例解析 (http://peixun0.cn/bbs/dispbbs.asp?boardid=45&id=2025) |
-- 作者:wangxinxin -- 发布时间:2010-12-3 11:16:44 -- Android输入法开发实例解析 这里我们建立表1为BiHua,同时构建两个字段,字段1为“input”来存放输入的,字段2为“value”为匹配出来的值,这里不难实现比如我们输入“111211”就可以匹配出两个这样笔画的字,分别是“彗”和“慧”,而1笔就可以输入好的字有“一不在有来大地到要可而于下过事”,这里我们可以把常用字优先排到前面。 2.五笔输入法 这里我们建立表名为CN,这里常规的字、词组、五笔都可以使用同一张表,这样对应查找更方便些,平时使用王码的打字员输入“ep”可以匹配出“爱”字,输入“jqb”匹配出“昂”字。这里ep就是input字段,而昂就是value字段在表CN中,依次类推。 3.英文输入法 这个就更简单了,把常用的单词表全部放入到数据库中,输入a自动匹配apple、arm这样的单词,类似autocomplete是把,其实就是包含关系的,这里找个词典直接导入即可。 4.联想输入法 平时一个字一个字的输入老慢,同样我们不用很负责的算法,直接加入类似“zhongguo”对应“中国”这样的词组就OK了,经过Android123的初步测试SQLite数据库在Android上还是蛮快的,但是还是不推荐这样制作输入法,至少商用产品不能这样开发的。 5. 9宫格输入法 平时不用G1附带的QWERTY键盘打字时可以尝试下新的9宫格输入法,比如在传统手机键盘上,我们可以发现1键对应的是符号,2键上刻有 a b c这三个字母,而9键上刻有 w x y z 这个四个字母,正常不用遍历算法一样可以直接记录下按键顺序,比如输入“ding”这个拼音就是3464,而输入“chen”就是2436,最后再使用方法4中的直接查翻译过来就是中文字了,呵呵是不是很简单呢? 三、选字设计 这里我们充分发挥Android平台的触摸优势,通过Gallery控件可以直接实现触摸滚动,每个字我们可以当作一个TextView对待,因为都是派生于View类我们直接使用listener来拦截按下事件,就达到了触摸选字,如果是QWERTY布局的话按键排列比较紧密,可以使用Android平台提供的View类的长按listener来获取长按事件,显示一个放大的按下按钮信息,这点可以参考iPhone手机的输入法。 |