一、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 条评论