设为首页 加入收藏

TOP

Android键盘输出增加按键码
2014-11-24 14:30:35 来源: 作者: 【 】 浏览:1
Tags:Android 键盘 输出 增加 按键

这里主要讲android事件的处理过程,需要经过两个转换步骤:



1、键扫描码ScanCode是由linux的Input驱动框架定义的整数类型,可参考input.h头文件


在步骤一中将其值转换成表示按键的字符串


键盘布局文件(*.kl)将完成第一步的转换,放在/system/usr/keylayout/下面


举例如下:


input.h 中字母键定义:


#define KEY_Q 16
#define KEY_W 17
#define KEY_E 18
#define KEY_R 19
#define KEY_T 20
#define KEY_Y 21
#define KEY_U 22
#define KEY_I 23
#define KEY_O 24
#define KEY_P 25


而qwert.kl中定义如下:


ScanCode + 字符串值


key 16 Q
key 17 W
key 18 E
key 19 R
key 20 T
key 21 Y
key 22 U
key 23 I
key 24 O
key 25 P


2、通过查找KEYCODES数组,将literal字符串转换成value的整型值,即转换到KeyCode值了


片段如下,右边的值是android系统中使用的KeyCode值:(文件路径:frameworks/base/include/ui/KeycodeLabels.h)


static const KeycodeLabel KEYCODES[] = {



...


{ "A", 29 },
{ "B", 30 },
{ "C", 31 },
{ "D", 32 },
{ "E", 33 },
{ "F", 34 },
{ "G", 35 },
{ "H", 36 },
{ "I", 37 },
{ "J", 38 },
{ "K", 39 },
{ "L", 40 },
{ "M", 41 },
{ "N", 42 },
{ "O", 43 },
{ "P", 44 },
{ "Q", 45 },
{ "R", 46 },
{ "S", 47 },
{ "T", 48 },
{ "U", 49 },
{ "V", 50 },
{ "W", 51 },
{ "X", 52 },
{ "Y", 53 },
{ "Z", 54 },



...


};


右边的值在android中定义如下:(文件路径:frameworks/base/include/android/keycodes.h)


/*
* Key codes.
*/
enum {


AKEYCODE_A = 29,
AKEYCODE_B = 30,
AKEYCODE_C = 31,
AKEYCODE_D = 32,
AKEYCODE_E = 33,
AKEYCODE_F = 34,
AKEYCODE_G = 35,
AKEYCODE_H = 36,
AKEYCODE_I = 37,
AKEYCODE_J = 38,
AKEYCODE_K = 39,
AKEYCODE_L = 40,
AKEYCODE_M = 41,
AKEYCODE_N = 42,
AKEYCODE_O = 43,
AKEYCODE_P = 44,
AKEYCODE_Q = 45,
AKEYCODE_R = 46,
AKEYCODE_S = 47,
AKEYCODE_T = 48,
AKEYCODE_U = 49,
AKEYCODE_V = 50,
AKEYCODE_W = 51,
AKEYCODE_X = 52,
AKEYCODE_Y = 53,
AKEYCODE_Z = 54,


..


};


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 2.3 input输入事件处理 下一篇Android 带提示的输入框

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: