WEB开发网
开发学院手机开发Android 开发 Android SDK 之 InputMethodService 详解 阅读

Android SDK 之 InputMethodService 详解

 2010-03-17 16:16:00 来源:WEB开发网   
核心提示:需要将一个现有的输入法移植到Android平台上去,根据以前的经验来看,Android SDK 之 InputMethodService 详解,Android还没有输入法框架的,开发成本非常高,这个是和用户交互的主要发生地:按键,画图或者其他的方式,所幸的是,在1.5版本之后

需要将一个现有的输入法移植到Android平台上去,根据以前的经验来看,Android还没有输入法框架的,开发成本非常高。所幸的是,在1.5版本之后,Android果断的开放了他的IMF,这给了我们很大的鼓舞。

要自己动手写一个输入法,入手的例子可以看他的Sample中的 SoftKeyboard。这个例子其实写的非常的清楚,它也自称这是一个非常完整的输入法实现,虽然只是简单的英文和数字等的输入。

入手的接口是InputMethodService。它是InputMethod的一个完整实现,你可以再在其基础上扩展和定制。他有5个可能我们会非常感兴趣的类。

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

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

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

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

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

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

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

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

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

再介绍这两个非常重要的视图:

1. 软输入视图。这个是和用户交互的主要发生地:按键,画图或者其他的方式。通常的实现就是简单的用一个视图来处理所有的工作,并且在调用

1 2  下一页

Tags:Android SDK InputMethodService

编辑录入:coldstar [复制链接] [打 印]
赞助商链接