资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,手机多语言输入法模块的管理和开发,姓名:,学号:,班级:,指导老师:,中兴通讯,P600B1 WCDMA/GSM,双模移动电话机的一个子模块。,项目来源和意义,手机输入法总体结构图,在这些过程中,输入法搜索引擎和字库由,ZI,提供,键盘输入和,LCD,显示由硬件支持,人机界面将调用相应函数来处理这些过程。所以,在本模块中,处理的是人机界面及人机界面与各个过程模块之间的关系。,界面需求,文字编辑区 用户编辑的结果在文本编辑里显示。,录入区 用户的录入过程的提示显示在录入区。,候选词区 用户完成录入后可能会得到一系列满足条件的候选词,需要从候选词里调出所需要的单词。这些候选词放在候选词区里被显示。,文字和符号的显示,在编辑框中,要求文字和符号正常显示,,一行不能显示则分行显示。,在英文输入法下,要求单词完整显示。,在编辑状态下,随光标的位置显示相应的文字行。目前适合文本串显示的是,AEE_FONT_NORMAL,类型,相当于,word,里的正常型,不加粗和下划线。,功能结构图,模块说明,界面显示模块,与,LCD,显示相关。,通用输入法处理模块,与键盘输入和输入法搜索引擎相关。,文本区域处理模块,处理文本区域的按键事件,包括输入法的切换等,系统设计和实现,界面元素的显示:光标,字符及字符反显,编辑框和提示框,文本区域处理模块,通用输入法处理模块,整体程序设计,界面元素显示:,编辑框和提示框,IDISPLAY_DrawRect,来画图实现,确认编辑框和提示框的位图坐标,宽度和长度,无提示框时,编辑框大小等于上层应用设置的控件大小,其左上角位图坐标设为(,x,,,y,),手机屏幕大小为,d,,,l,,提示框出现时,提示框的宽度和长度固定,宽度为两个字符的高度,设为,h,,而长度等于屏幕长度,l,,则提示框位图坐标为(,d-h,,,0,)。而符号提示框的宽度和长度固定,宽度是,5,个小矩形宽度为,m,,长度和屏幕长度一致为,l,,左上角位图坐标是(,d-m,,,0,),覆盖整个控件。,界面元素显示:,字符和光标显示,IDISPLAY_DrawText,实现字符显示,整个输入字符串,psText,。,每行行首字符在,psText,的位置,屏幕显示的首行的是第几行,计算屏幕显示的行首的位图坐标,IDISPLAY_DrawVLine,实现光标显示,光标在整个字串的位置,光标的位图坐标,文本区域处理,左右键,上下键,,#,键,*键,,Clr,键和添加字符,#,键用来切换输入法。,若当前输入法状态不在原始初始状态,则释放输入法模块结构体。取得当前的输入法类型,判断当前输入法类型是内置所有输入法数组的第几个,设为,index,。,index+,,如果,index,等于输入法数组最大下标数,则,index,等于,0,,取得下标为,index,的值,为下一个输入法类型。,将这个输入法类型与用户设置的所有输入法类型的位逻辑或进行位逻辑与,若等于零,则继续转到,3,,直到循环一次,若没有找到,则将输入法设置为数字输入法。不等于零则将输入法设置为这个输入法类型。,添加字符,添加字符时确认当前,wselStart,和,wselEnd,是否相等,不相等,删除,wselStart,和,wselEnd,之间的字符,,wselStart,和,wselEnd,等于,wselStart,,将字符添加到字符串,wselStart,的位置,,wselStart,以后的字符依次往后串。,通用输入法处理模块,以,PINYIN,输入法为例,四个状态,按键处理,PINYIN,输入示例,符号处理,两个状态,按键处理,字母输入,用户进入字母输入。,用户按键。,记录当前按键,显示此按键对应的键盘安排表中字母串的第一个,设置定时器。,定时器到期则添加当前显示的字母。,用户又按键。是同一按键则切换到当前显示的字母的下一个字母。回到,4,。不是同一按键,且又不是,2-9,键或者,0,键,则到,8,。,添加当前显示的字符,去掉定时器,当前按键改变,回到,2,。,添加当前显示的字符,去掉定时器,回到,1,。,谢谢,
展开阅读全文