实现简单的中文输入法

需求

在实际项目中遇到这样一个需求:自助设备,输入设备只有触摸屏,没有键盘;其中有个功能页面,需要输入中文姓名。

思路

一开始想通过 软键盘 + 系统自带输入法 的方式处理,但发现系统自带的输入法,显示界面过小,无论从查看还是操控的角度看,都与自助设备格格不入。既然系统自带输入法走不通,那就只能自己来实现一个汉字输入法了,这样界面的大小和操控方式,都由自己掌控。

汉字数据字典

中文输入法我们选择拼音输入法,要制作这样的输入法,首先需要常用汉字的电子数据,包括汉字和对应的拼音,并且最好有使用频率值,这样可以把使用频率高的汉字排在前面,从而提高用户的使用体验。通过搜索引擎,我们从网上搜到了常用汉字的数据,下载下来后一般是一个文本文件或EXCEL文件,格式大致如下图所示:

然后,我们对原始数据稍加处理,导入到本地的一个 sqlite 数据表中,因为有多音字的情况,所以拼音字段有多个。

最终实现

有了汉字数据表,接下来的事情就好办了。在UI界面上设计个26个字母的软键盘,然后监听软键盘的单击事件,通过拼音搜索汉字数据表中对应的汉字,并按使用频率进行排序。当待选汉字较多时,进行分页显示。

完整代码下载

delphi实现简易版的中文输入法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值