android输入法(3)–InputMethodService

一、几个重要的函数
onInitializeInterface() 看名字就知道,他是在初始化界面的时候被调用,而一般是一位配置文件的更改导致该函数的执行

onBinndInput() 它在另外的客户端和该输入法连接时调用

onStartInput() 这个非常重要的一个回调,它在编辑框中用户已经开始输入的时候调用。比如你点击一个输入框,你需要根据这个输入框的信息,设置输入法的一些特性,这个在Sample中很有体会

onCreateInputView()
onCreateCandidatesView()
onCreateExtractTextView()
第一个是返回一个层次性的输入视图,而且只是在第一次这个视图显示的时候被调用。第二个跟第一个是一样的,只不过创建的是候选框的视图。第三个比较特殊,他是在全屏模式下的一个视图。

onStartInputView() 它是在输入视图被显示并且在一个新的输入框中输入已经开始的时候调用。

基本上输入法的定制,都是围绕在这个接口来实现的,它主要提供的是一个基本的用户界面框架(包括输入视图,候选词视图和全屏模式),但是这些都是要实现者自己去定制的。这里的实现是让所有的元素都放置在了一个单一的由InputMethodService来管理的窗口中。他提供了很多的回调API,需要自己去实现。那么一些默认的设置包括:

1. 软键盘输入视图,它通常都是被放置在屏幕的下方。

2. 候选词视图,它通常是放置在输入视图的上面。

3. 当你输入的时候,是改变你的应用程序的界面来适应这些视图的放置规则的。比如你在Android上面输入,编辑框会自动变形腾出一个软键盘的位置来。

二、两个非常重要的视图
1. 软输入视图(InputView)。是与用户交互的主要发生地:按键,画图或者其他的方式。通常的实现就是简单的用一个视图来处理所有的工作,并且在调用onCreateInputView()的时候返回一个新的实例。通过调用系统的onEvaluateInputViewShow()来测试是否需要显示输入视图,它是系统根据当前的上下文环境来实现的。当输入法状态改变的时候,需要调用updateInputViewShown()来重新估计一下。
2. 候选词视图(CandidatesView)。当用户输入一些字符之后,输入法可能需要提供给用户一些可用的候选词的列表。这个视图的管理和输入视图不大一样,因为这个视图是非常的短暂的,它只是在有候选词的时候才会被显示。可以用setCandidatesViewShow()来设置是否需要显示这个视图。正是因为这个显示的频繁性,所以它一般不会被销毁,而且不会改变当前应用程序的视图。

0 条评论
发表一条评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。