关于android的输入法框架(imf)
16lz
2021-01-26
温故而知新,先看看网上已有的相关材料。
http://android-developers.blogspot.com/2009/04/creating-input-method.html
这篇文章的基本点有几个。
第一、两个view 对象:input view和canidates view。
input view 一般就是一个键盘,canidates view就是在键盘上面根据用户输入,给用户选择提示的。
第二、两种向应用送文本的方法。一个是send key, 一个是直接改变游标附近的值。一般的输入法都是用第二种居多。
其中重点中的重点是:链接应用与输入法的对象是叫InputConnection的接口。输入法不直接与应用的视图进行通信,而是通过InputConnection这座桥梁。输入法要获取要修改的字符串,要获取游标的信息是通过它,输入法要改变游标附近的字符也是通过这个桥梁。
在sdk里面有一个叫SoftKeyBoard,是一个比较简单的输入法的实现,非常有用。然后sdk源代码中的TextView,EditableInputConnection也非常实用。
总结:
1、要实现一个输入法:定制自己的input view和canidates view这两个界面,调用inputConnection接口来送出文本。
2、要实现一个能够与应用输入法的视,你需要在视图中实现onCreateInputConnection.然后你要为自己的视图定制合适的InputConnection实现。主要实现里面的commitText,getEditable等方法。
http://android-developers.blogspot.com/2009/04/creating-input-method.html
这篇文章的基本点有几个。
第一、两个view 对象:input view和canidates view。
input view 一般就是一个键盘,canidates view就是在键盘上面根据用户输入,给用户选择提示的。
第二、两种向应用送文本的方法。一个是send key, 一个是直接改变游标附近的值。一般的输入法都是用第二种居多。
其中重点中的重点是:链接应用与输入法的对象是叫InputConnection的接口。输入法不直接与应用的视图进行通信,而是通过InputConnection这座桥梁。输入法要获取要修改的字符串,要获取游标的信息是通过它,输入法要改变游标附近的字符也是通过这个桥梁。
在sdk里面有一个叫SoftKeyBoard,是一个比较简单的输入法的实现,非常有用。然后sdk源代码中的TextView,EditableInputConnection也非常实用。
总结:
1、要实现一个输入法:定制自己的input view和canidates view这两个界面,调用inputConnection接口来送出文本。
2、要实现一个能够与应用输入法的视,你需要在视图中实现onCreateInputConnection.然后你要为自己的视图定制合适的InputConnection实现。主要实现里面的commitText,getEditable等方法。
更多相关文章
- Android(安卓)Studio 视图解析
- [置顶] Android(安卓)ButterKnife
- Android数据库中查找一条数据使用的方法 query详解
- Android(安卓)ExpandableListView 进行二级扩展 (BaseExpandableL
- android用户界面-组件Widget-网络视图WebView
- popupWindow 使用
- 安卓:View的基本信息
- Android自定义Dialog二次调用报错解决方法:The specified child a
- Android(安卓)Material Design之CoordinatorLayout全面使用介绍