Android SDK sample 之 SoftKeyboard 详解
2010-03-17 16:16:00 来源:WEB开发网终于到了解读源文件的时间了。在src目录里面就是真个输入法的源文件了。最开始我看的源文件是openwnn的源文件,这个开源的输入法实在是太强大了,然后很多地方我都还没有搞明白,作为入门级的,还是看这个Sample比较的简单吧,虽然他的功能并没有达到一个输入法的真正的情况,但是它却是经历了一个开发输入法的完整流程。
这里面有4个文件:
LatinKeyboard.java:
这个就是软键盘类了,直接继承了 Keyboard类来实现一个输入拉丁文的键盘。它还定义了一个内部类,叫做LatinKey,它直接继承了Key,来定义一个单独的键,它唯一重载的函数是isInside(int x , int y ),用来判断一个坐标是否在该键内。它重载为判断该键是否是CANCEL键,如果是则把Y坐标减少10px,按照他的解释是用来还原这个可以关掉键盘的键的目标区域。
在LatinKeyboard中,重载了一个createKeyFromXml的函数,这是一个回调函数,他是键盘在描绘键的时候调用,它是从一个xml资源文件中载入一个键,并且放置在(x,y)坐标处。它还判断了该键是否是回车键,并保存起来。
这当中还定义了一个函数是:setImeOptions,它是根据编辑框的当前信息,来为这个键盘的回车键设置适当的标签。这个很好理解,就如前面我说过的一样,输入框的不同,会产生不同的回车键的label或者icon。在这个函数中,有一个技巧是用了一些imeOption的位信息,比如IME_MASK_ACTION等等。主要是查看的EditorInfo的Action信息,这里有:
IME_ACTION_GO:这个是go操作,它将用户带入到一个该输入框的目标的动作。那么确认键将不会有icon,但是有label:GO
IME_ACTION_NEXT:这个是是next操作,它将用户带入到该文本框的写一个输入框中。比如说编辑短消息的时候,内容就是收件人手机号码框的next文字域。它也只是一个NEXT label就行了。
IME_ACTION_SEARCH; 这个是search操作,它的默认动作就是搜索。比如在URL框中输入的时候,默认的就是search操作,它提供了一个像放大镜一样的icon。
IME- ACTION_SEND:这个是send操作,它的默认动作就是发送当前的内容。比如在短消息的内容框里面输入的时候,后面通常就是一个发送操作。它也是只提供一个Label:SEND
DEFAULT: 默认情况下表示文本框并没有什么特殊的要求,所以只需要设置return的icon即可。
至此,这个类就已经完毕了。很简单一句话,定义一个xml格式的Keyboard的布局,然后吃继承一个Keyboard类,即可。
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接