输入法app怎么做
开发一个输入法,只需要用到一个核心类和几个可有可无的辅助类。
核心类是InputMethodService,一个输入法几乎所有的功能都是由它来实现的,包括键盘界面的搭建、键盘语言的切换、拼音汉字的转换、候选词的展示、文字的上屏等各种逻辑都通过这个类来实现。InputMethodService类有如下几个主要方法来管理输入法服务的生命周期:
·onCreate():输入法开始创建,内部已经实现
设置theme、创建window、填充 rootview、设置布局方式等,我们也可以在此处
做一些初始化操作,但一定不要忘了调用supper.onCreate () ;
·onCreatelnputView():返回一个 view 作为
输入法的键盘布局,通常这个view是由KeyboardView 和 Keyboard两个辅助类生成,当然也完全可以自定义。切换一次输入法只会调用APP内打开
·onCreateCandidatesView():返回一个view
来展示候选词,这个view可有可无,会覆盖到应用上方,一般用半透明的背景,但市面上的输入法一般都用来显示拼音部分,而把候选词放入InputView.同样切换一次输入法只会调用一次;
·onStartlnputView(Editorlnfo):开始输入的
时候调用,每次唤起键盘或切换EditText都会调用,并把EditText的Editorlnfo传过来,输入法要根据 Editorlnfo的信息判断中英文、数字、回车键类型等,来展示不同的键盘,也就是动态切换 InputView的布局;
·onFinishlnput():输入结束的时候调用,此
时可以做一些reset操作,比如隐藏CandidatesView,恢复InputView为默认布局等;APP内打开
·onDestroy():一般在切换其他输入法的时候