Android遊戲之按鍵

Android遊戲之按鍵

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

 

評論