从SDK 1.5版本以后,Android就开放它的IMF(Input Method Framework),让我们能够开发自己的输入法。而开发输入法最好的参考就是Android自带的Sample-SoftKeyboard,虽然这个例子仅包含英文和数字输入,但是它本身还算完整和清楚,对我们开始Android开发实战有很大帮助。
什么是IMF:
IMF(Input Method Framework),Android IMF用于支持各种输入法,如软键盘输入、手写输入、物理键盘输入(soft keyboard, hand-writing recognizers, and hard keyboard translators)。我们关注的重点是软键盘输入。
IMF结构:
一个IMF结构中包含三个主要的部分:
input method manager:管理各部分的交互。它是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务。
input method(IME):实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
client application:通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
创建一个输入法:
(1)在AndroidManifest.xml
中,须把input method声明成一个service,并且加上 intent filter (associated meta data):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.fastinput">
<application android:label="@string/app_label">
<!