
Android其實是支持標準鍵盤.大多數Android手機只支持軟鍵盤. 遊戲要捕足按鍵事件你需要實現OnKeyListener接口.它通過與接收鍵盤事件View相連並接收按鍵事件.
public boolean onKey(View view,int keyCode,KeyEvent event);
按鍵編碼keyCode為整數0~127一共128個按鍵.常量值形式為KeyEvent.KEYCODE_XXX
獲取按鍵字符:KeyEvent.getUnicodeChar();
獲取按鍵事件類型: KeyEvent.getAction();
| 獲取按鍵事件類型: KeyEvent.getAction(); | 簡介 |
| KeyEvent.ACTION_MULTIPLE | 連續多個重複鍵事件 |
| KeyEvent.ACTION_DOWN | 按下按鍵時觸發 |
| KeyEvent.ACTION_UP | 鬆開按鍵時觸發 |
當鍵盤按下時其值被保存在鍵盤列狀態
public static int MAX_KEY = 128;// 128個按鍵
public static int[] Key_Action = new int[MAX_KEY];// 按鍵事件,按下/送開
public static int[] Key_Code = new int[MAX_KEY];// 按鍵代碼
public static int[] Key_Char = new int[MAX_KEY];// 按鍵字符
public static int Key_Count = 0; // 未處理按鍵量
private static boolean[] Key_State = new boolean[128];// 按鍵的當前狀態true按下.false鬆開
private static KeyboardListener Keyboard_Listener = new KeyboardListener();//按鍵監聽器
實現鍵盤監聽接口從View中接收鍵盤事件並處理
static class KeyboardListener implements View.OnKeyListener{
@Override
public boolean onKey(View view, int keyCode, KeyEvent event){
int index;
int Action;
if(Key_Count >= MAX_KEY)
return false;
index = Key_Count;
++Key_Count;
Key_Code[index] = keyCode;// 鍵代碼
Key_Char[index] = event.getUnicodeChar();// 鍵字符
Action = event.getAction();// 獲取按鍵事件類型
if(Action == KeyEvent.ACTION_MULTIPLE)// 多重
return false;
if(Action == KeyEvent.ACTION_DOWN)
{// 按下
if(keyCode >0 && keyCode < 127)
Key_State[keyCode] = true;// 按下
Key_Action[index] = KeyEvent.ACTION_DOWN;
}
else
if(Action == KeyEvent.ACTION_UP)
{// 鬆開
if(keyCode >0 && keyCode < 127)
Key_State[keyCode] = false;
Key_Action[index] = KeyEvent.ACTION_UP;
}
return false;
}
初此按鍵監聽器
public static boolean Init(View view)
{
for(int i=0;i<Key_State.length;++i)
Key_State[i] = false;
view.setOnKeyListener(Keyboard_Listener);// view對按鍵進行監聽
view.requestFocus();//請求焦點
return true;
}
}
| 電話鍵常量 | 數值 |
| KEYCODE_CALL | 撥號鍵 |
| KEYCODE_ENDCALL | 掛機鍵 |
| KEYCODE_HOME | Home鍵返回面 |
| KEYCODE_MENU | 菜單鍵 |
| KEYCODE_BACK | 返回鍵 |
| KEYCODE_SEARCH | 搜索鍵 |
| KEYCODE_CAMERA | 拍照鍵 |
| KEYCODE_FOCUS | 拍照對焦鍵 |
| KEYCODE_POWER | 電源鍵 |
| KEYCODE_NOTIFICATION | 通知鍵 |
| KEYCODE_MUTE | 話筒靜音鍵 |
| KEYCODE_VOLUME_MUTE | 揚聲器靜音鍵 |
| KEYCODE_VOLUME_UP | 音量增加鍵 |
| KEYCODE_VOLUME_DOWN | 音量減小鍵 |
| 控制鍵常量 | 數值 |
| KEYCODE_ENTER | ENTER回車鍵 |
| KEYCODE_ESCAPE | ESC鍵 |
| KEYCODE_DPAD_CENTER | 方向鍵/確定鍵 |
| KEYCODE_DPAD_UP | 方向鍵/向上鍵 |
| KEYCODE_DPAD_DOWN | 方向鍵/向下鍵 |
| KEYCODE_DPAD_LEFT | 方向鍵/向左鍵 |
| KEYCODE_DPAD_RIGHT | 方向鍵/向右鍵 |
| KEYCODE_MOVE_HOME | 光標移動到開始鍵 |
| KEYCODE_MOVE_END | 光標移動到末尾鍵 |
| KEYCODE_PAGE_UP | 向上翻頁鍵 |
| KEYCODE_PAGE_DOWN | 向下翻頁鍵 |
| KEYCODE_DEL | 退格鍵 |
| KEYCODE_FORWARD_DEL | 刪除鍵 |
| KEYCODE_INSERT | 插入鍵 |
| KEYCODE_TAB | Tab鍵/焦點切換鍵 |
| KEYCODE_NUM_LOCK | 小鍵盤鎖 |
| KEYCODE_CAPS_LOCK | 大寫鎖定鍵 |
| KEYCODE_BREAK | Break/Pause鍵 |
| KEYCODE_SCROLL_LOCK | 滾動鎖定鍵 |
| KEYCODE_ZOOM_IN | 放大鍵 |
| KEYCODE_ZOOM_OUT | 縮小鍵 |
| 組合鍵常量 | 簡介 |
| KEYCODE_ALT_LEFT | Alt+Left |
| KEYCODE_ALT_RIGHT | Alt+Right |
| KEYCODE_CTRL_LEFT | Control+Left |
| KEYCODE_CTRL_RIGHT | Control+Right |
| KEYCODE_SHIFT_LEFT | Shift+Left |
| KEYCODE_SHIFT_RIGHT | Shift+Right |
| 數字與字母鍵常量 | 簡介 |
| KEYCODE_0 | 數字鍵0 |
| KEYCODE_1 | 數字鍵1 |
| KEYCODE_2 | 數字鍵2 |
| KEYCODE_3 | 數字鍵3 |
| KEYCODE_4 | 數字鍵4 |
| KEYCODE_5 | 數字鍵5 |
| KEYCODE_6 | 數字鍵6 |
| KEYCODE_7 | 數字鍵7 |
| KEYCODE_8 | 數字鍵8 |
| KEYCODE_9 | 數字鍵9 |
| KEYCODE_A | 字母鍵A |
| KEYCODE_B | 字母鍵B |
| KEYCODE_C | 字母鍵C |
| KEYCODE_D | 字母鍵D |
| KEYCODE_E | 字母鍵E |
| KEYCODE_F | 字母鍵F |
| KEYCODE_G | 字母鍵G |
| KEYCODE_H | 字母鍵H |
| KEYCODE_I | 字母鍵I |
| KEYCODE_J | 字母鍵J |
| KEYCODE_K | 字母鍵K |
| KEYCODE_L | 字母鍵L |
| KEYCODE_M | 字母鍵M |
| KEYCODE_N | 字母鍵N |
| KEYCODE_O | 字母鍵O |
| KEYCODE_P | 字母鍵P |
| KEYCODE_Q | 字母鍵Q |
| KEYCODE_R | 字母鍵R |
| KEYCODE_S | 字母鍵S |
| KEYCODE_T | 字母鍵T |
| KEYCODE_U | 字母鍵U |
| KEYCODE_V | 字母鍵V |
| KEYCODE_W | 字母鍵W |
| KEYCODE_X | 字母鍵X |
| KEYCODE_Y | 字母鍵Y |
| KEYCODE_Z | 字母鍵Z |
| 符號鍵常量 | 簡介 |
| KEYCODE_PLUS | 加號+ |
| KEYCODE_MINUS | 減號- |
| KEYCODE_STAR | 乘號* |
| KEYCODE_SLASH | 除號/ |
| KEYCODE_EQUALS | 等號= |
| KEYCODE_AT | 符號鍵@ |
| KEYCODE_POUND | 井號鍵# |
| KEYCODE_APOSTROPHE | 單引號’ |
| KEYCODE_BACKSLASH | 斜杆\ |
| KEYCODE_COMMA | 逗號, |
| KEYCODE_PERIOD | 句號. |
| KEYCODE_LEFT_BRACKET | 左括號[ |
| KEYCODE_RIGHT_BRACKET | 右括號] |
| KEYCODE_SEMICOLON | 分號; |
| KEYCODE_GRAVE | ` |
| KEYCODE_SPACE | 空格鍵 |
| 小鍵盤常量 | 簡介 |
| KEYCODE_NUMPAD_0 | 小鍵盤數字鍵0 |
| KEYCODE_NUMPAD_1 | 小鍵盤數字鍵1 |
| KEYCODE_NUMPAD_2 | 小鍵盤數字鍵2 |
| KEYCODE_NUMPAD_3 | 小鍵盤數字鍵3 |
| KEYCODE_NUMPAD_4 | 小鍵盤數字鍵4 |
| KEYCODE_NUMPAD_5 | 小鍵盤數字鍵5 |
| KEYCODE_NUMPAD_6 | 小鍵盤數字鍵6 |
| KEYCODE_NUMPAD_7 | 小鍵盤數字鍵7 |
| KEYCODE_NUMPAD_8 | 小鍵盤數字鍵8 |
| KEYCODE_NUMPAD_9 | 小鍵盤數字鍵9 |
| KEYCODE_NUMPAD_ADD | 小鍵盤加號+ |
| KEYCODE_NUMPAD_SUBTRACT | 小鍵盤減號- |
| KEYCODE_NUMPAD_MULTIPLY | 小鍵盤乘號* |
| KEYCODE_NUMPAD_DIVIDE | 小鍵盤除號’/’ |
| KEYCODE_NUMPAD_EQUALS | 小鍵盤等號’=’ |
| KEYCODE_NUMPAD_COMMA | 小鍵盤逗號’,’ |
| KEYCODE_NUMPAD_DOT | 小鍵盤點號’.’ |
| KEYCODE_NUMPAD_LEFT_PAREN | 小鍵盤左括弧'(‘ |
| KEYCODE_NUMPAD_RIGHT_PAREN | 小鍵盤左括弧’)’ |
| KEYCODE_NUMPAD_ENTER | 小鍵盤回車鍵 |
| 功能鍵常量 | 簡介 |
| KEYCODE_F1 | 按鍵F1 |
| KEYCODE_F2 | 按鍵F2 |
| KEYCODE_F3 | 按鍵F3 |
| KEYCODE_F4 | 按鍵F4 |
| KEYCODE_F5 | 按鍵F5 |
| KEYCODE_F6 | 按鍵F6 |
| KEYCODE_F7 | 按鍵F7 |
| KEYCODE_F8 | 按鍵F8 |
| KEYCODE_F9 | 按鍵F9 |
| KEYCODE_F10 | 按鍵F10 |
| KEYCODE_F11 | 按鍵F11 |
| KEYCODE_F12 | 按鍵F12 |
| 多媒體鍵常量 | 簡介 |
| KEYCODE_MEDIA_PLAY | 播放鍵 |
| KEYCODE_MEDIA_STOP | 停止鍵 |
| KEYCODE_MEDIA_PAUSE | 暫停鍵 |
| KEYCODE_MEDIA_PLAY_PAUSE | 播放/暫停鍵 |
| KEYCODE_MEDIA_FAST_FORWARD | 快進鍵 |
| KEYCODE_MEDIA_REWIND | 快退鍵 |
| KEYCODE_MEDIA_NEXT | 下一首鍵 |
| KEYCODE_MEDIA_PREVIOUS | 上一首鍵 |
| KEYCODE_MEDIA_CLOSE | 關閉鍵 |
| KEYCODE_MEDIA_EJECT | 彈出鍵 |
| KEYCODE_MEDIA_RECORD | 錄音鍵 |
| 通用遊戲手柄按鈕按鍵常量 | 簡介 |
| KEYCODE_BUTTON_1 | #1 |
| KEYCODE_BUTTON_2 | #2 |
| KEYCODE_BUTTON_3 | #3 |
| KEYCODE_BUTTON_4 | #4 |
| KEYCODE_BUTTON_5 | #5 |
| KEYCODE_BUTTON_6 | #6 |
| KEYCODE_BUTTON_7 | #7 |
| KEYCODE_BUTTON_8 | #8 |
| KEYCODE_BUTTON_9 | #9 |
| KEYCODE_BUTTON_10 | #10 |
| KEYCODE_BUTTON_11 | #11 |
| KEYCODE_BUTTON_12 | #12 |
| KEYCODE_BUTTON_13 | #13 |
| KEYCODE_BUTTON_14 | #14 |
| KEYCODE_BUTTON_15 | #15 |
| KEYCODE_BUTTON_16 | #16 |
| KEYCODE_BUTTON_A | 手柄A |
| KEYCODE_BUTTON_B | 手柄B |
| KEYCODE_BUTTON_C | 手柄C |
| KEYCODE_BUTTON_X | 手柄X |
| KEYCODE_BUTTON_Y | 手柄 Y |
| KEYCODE_BUTTON_Z | 手柄 Z |
| KEYCODE_BUTTON_L1 | 手柄 L1 |
| KEYCODE_BUTTON_L2 | 手柄L2 |
| KEYCODE_BUTTON_R1 | 手柄R1 |
| KEYCODE_BUTTON_R2 | 手柄R2 |
| KEYCODE_BUTTON_MODE | 手柄Mode |
| KEYCODE_BUTTON_SELECT | 手柄Select |
| KEYCODE_BUTTON_START | 手柄Start |
| KEYCODE_BUTTON_THUMBL | 左拇指鍵 |
| KEYCODE_BUTTON_THUMBR | 右拇指鍵 |
| 按鍵常量 | 簡介 |
| KEYCODE_NUM | Number modifier |
| KEYCODE_INFO | Info |
| KEYCODE_APP_SWITCH | App switch |
| KEYCODE_BOOKMARK | Bookmark |
| KEYCODE_AVR_INPUT | A/V Receiver input |
| KEYCODE_AVR_POWER | A/V Receiver power |
| KEYCODE_CAPTIONS | Toggle captions |
| KEYCODE_CHANNEL_DOWN | Channel down |
| KEYCODE_CHANNEL_UP | Channel up |
| KEYCODE_CLEAR | Clear |
| KEYCODE_DVR | DVR |
| KEYCODE_ENVELOPE | Envelope special function |
| KEYCODE_EXPLORER | Explorer special function |
| KEYCODE_FORWARD | Forward |
| KEYCODE_FORWARD_DEL | Forward Delete |
| KEYCODE_FUNCTION | Function modifier |
| KEYCODE_GUIDE | Guide |
| KEYCODE_HEADSETHOOK | Headset Hook |
| KEYCODE_META_LEFT | Left Meta modifier |
| KEYCODE_META_RIGHT | Right Meta modifier |
| KEYCODE_PICTSYMBOLS | Picture Symbols modifier |
| KEYCODE_PROG_BLUE | Blue “programmable” |
| KEYCODE_PROG_GREEN | Green “programmable” |
| KEYCODE_PROG_RED | Red “programmable” |
| KEYCODE_PROG_YELLOW | Yellow “programmable” |
| KEYCODE_SETTINGS | Settings |
| KEYCODE_SOFT_LEFT | Soft Left |
| KEYCODE_SOFT_RIGHT | Soft Right |
| KEYCODE_STB_INPUT | Set-top-box input |
| KEYCODE_STB_POWER | Set-top-box power |
| KEYCODE_SWITCH_CHARSET | Switch Charset modifier |
| KEYCODE_SYM | Symbol modifier |
| KEYCODE_SYSRQ | System Request / Print Screen |
| KEYCODE_TV | TV鍵 |
| KEYCODE_TV_INPUT | TV input鍵 |
| KEYCODE_TV_POWER | TV power鍵 |
| KEYCODE_WINDOW | Window鍵 |
| KEYCODE_UNKNOWN | 未知按鍵 |
