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 | 未知按鍵 |