Android开发实无锡app开发公司例详解之IMF

2021-12-17 15:27:51 无锡雷霆

从SDK 1.5版本当前,Android就开放它的IMF(Input Method Framework),让咱们可以开发本人的输入法。而开发输入法***的参考就是Android自带的Sample-SoftKeyboard,只管这个例子仅蕴含英文和数字输入,然而它自身还算残缺和清楚,对咱们末尾Android开发实战有很大协助。

一、IMF 简介

一个IMF构造中蕴含三个次要的局部:

input method manager:治理各局部的交互。它是一个客户端API,存在于各个运用程序的context中,用来沟通治理一切进程间交互的全局系统服务。

input method(IME):完成一个容许用户生成文本的独立交互模块。系统绑定一个以后的输入法。使其创建和生成,决议输入法何时隐藏或许显示它的UI。同一工夫只能有一个IME运转。

client application:经过输入法治理器控制输入焦点和IME的形态。一次只能有一个客户端利用IME。

1 、InputManager

由UI控件(View,TextView,EditText等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。

它是整个输入法框架(IMF)构造的外围API,解决运用程序和以后输入法的交互。可能经过Context.getSystemService()来获取一个InputMethodManager的实例。

在开发过程中,最根底最重要的就是养成浏览API的习气。优良的程序员要养成把本人关在小黑屋里,断绝与外界的联网和联络,仅仅靠本人电脑中的开发环境和API文档,以及美丽女仆送来的每天三顿饭,写出优良的程序。这个在武侠小说中叫闭关,在软件开发中叫Clean Room,哈哈。

Android的API文档在:%SDK_ROOM%/docs/reference/index.html,

InputManager类的地位:%SDK_ROOM%/docs/reference/android/view/inputmethod/InputMethodManager.html

因为,该类跟本主要讲的Sample关系不大,这里就不具体剖析,请各位自行浏览API doc吧。

2 、InputMethodService

包括输入法内部逻辑,键盘规划,选词等,最终把选出的字符经过commitText提交进去。完成输入法的根底就是名为InputMethodService的类,比如你要完成一个谷歌输入法,就是要extends本类。咱们接上去要学习的SoftKeyboard Sample也是extends本类。InputMethodService类的地位在:%SDK_ROOM%/docs/reference/android/inputmethodservice/InputMethodService.html

InputMethodService是InputMethod的一个残缺完成,你可能再在其根底上扩充和定制。它的次要方法如下:

◆onInitializeInterface() 顾名思义,它在初始化界面的时分被调用,而普通是因为配置文件的更改导致该函数的执行

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

◆onStartInput() 十分重要的一个回调,它在编辑框中用户已经末尾输入的时分调用。比如,当点击一个输入框,咱们需求依据这个输入框的信息,设置输入法的一些特性,这个在Sample中很有体会。

◆onCreateInputView() 前往一个层次性的输入视图,而且只是在这个视图***次显示的时分被调用

◆onCreateCandidatesView() 同onCreateInputView(),只不过创建的是候选框的视图。

◆onCreateExtractTextView() 比较特殊,是在全屏形式下的一个视图。

◆onStartInputView() 在输入视图被显示并且在一个新的输入框中输入已经末尾的时分调用。

根本上输入法的定制,都是围绕在这个类来完成的,它次要提供的是一个根本的用户界面框架(包括输入视图,候选词视图和全屏形式),然而这些都是要完成者本人去定制的。这里的完成是让一切的元素都放置在了一个单一的由InputMethodService来治理的窗口中。它提供了很多的回调API,需求咱们本人去完成。一些默许的设置包括:

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

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

◆当咱们输入的时分,需求扭转运用程序的界面来顺应这些视图的放置规则。比如在Android上面输入,编辑框会主动变形腾出一个软键盘的地位来。

两个十分重要的视图:

1. 软输入视图。是与用户交互的次要发生地:按键,画图或许其余的模式。通常的完成就是简略的用一个视图来解决一切的工作,并且在调用 onCreateInputView()的时分前往一个新的实例。经过调用系统的onEvaluateInputViewShow()来测试能否需求显示输入视图,它是系统依据以后的上下文环境来完成的。当输入法形态扭转的时分,需求调用updateInputViewShown()来重新预计一下。

2. 候选词视图。当用户输入一些字符之后,输入法能够需求提供给用户一些可用的候选词的列表。这个视图的治理和输入视图不大一样,由于这个视图是十分的短暂的,它只是在有候选词的时分才会被显示。可能用setCandidatesViewShow()来设置能否需求显示这个视图。正是由于这个显示的频繁性,所以它普通不会被销毁,而且不会扭转以后运用程序的视图。

Android,开发,实例,详解