android输入法(4)–Keyboard&KeyboardView

一、Keyboard
Keyboard可以载入一个用来显示键盘布局的xml 来初始化自己,并且可以保存这些键盘的键的属性。他有三个构造函数:
Keyboard(Context context, int xmlLayoutResId)
用语境和xml 资源id索引xml 文件来创建。
Keyboard(Context context, int xmlLayoutResId, int modeId)
这个和上面差不多,只不过多了一个modeld。
Keyboard(Context context, int layoutTemplateResId, CharSequence characters, int columns, int horizontalPadding)
这个比较复杂,用一个空xml 布局模板创建一个键盘,然后用指定的characters按照从左往右,从上往下的方式填满这个模板。

Keyboard类中包含了Row和Key两个重要的内部类,这两个内部类是键盘布局中非常重要的两个类。其中,Row是Key的一个容器,在键盘中有若干个Row,没个Row中有若干个Key。中从源码来看,由这两个类的组合,Keyboard布局出来的键盘UI只能是十分规则的矩形:有若干行,每行有若干个键。

二、KeyboardView
这里就是个View,自然也继承自View,因为前面创建的Keyboard只是一个概
念,并不能实例出来一个UI,所以需要借助于一个VIEW 类来进行绘制。也就是说,我们在xml中所布局的键盘,并不会有任何显示,它的显示工作全部都是在KeyboardView中做的。

这两个类也没有太多要说的,相信大家稍微看看源码也就会明白的。

0 条评论
发表一条评论

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