需求
在实际项目中遇到这样一个需求:自助设备,输入设备只有触摸屏,没有键盘;其中有个功能页面,需要输入中文姓名。
思路
一开始想通过 软键盘 + 系统自带输入法 的方式处理,但发现系统自带的输入法,显示界面过小,无论从查看还是操控的角度看,都与自助设备格格不入。既然系统自带输入法走不通,那就只能自己来实现一个汉字输入法了,这样界面的大小和操控方式,都由自己掌控。
汉字数据字典
中文输入法我们选择拼音输入法,要制作这样的输入法,首先需要常用汉字的电子数据,包括汉字和对应的拼音,并且最好有使用频率值,这样可以把使用频率高的汉字排在前面,从而提高用户的使用体验。通过搜索引擎,我们从网上搜到了常用汉字的数据,下载下来后一般是一个文本文件或EXCEL文件,格式大致如下图所示:
然后,我们对原始数据稍加处理,导入到本地的一个 sqlite 数据表中,因为有多音字的情况,所以拼音字段有多个。
最终实现
有了汉字数据表,接下来的事情就好办了。在UI界面上设计个26个字母的软键盘,然后监听软键盘的单击事件,通过拼音搜索汉字数据表中对应的汉字,并按使用频率进行排序。当待选汉字较多时,进行分页显示。