android tv key事件,Android TV中按键事件和焦点处理总结

本文总结了Android TV开发中的按键事件和焦点处理,TV端的开发不同于手机开发,主要区别在于焦点的处理,常常会用到手机端很少用到的开发接口。了解这些不同的接口和区别,有助于很快的上手TV端的开发。

文章目录1.KeyEvent事件keyEvent2.KeyEvent事件分发dispatchKeyEvent()3.焦点处理 Focus焦点放大处理4.adb input 常见命令5.总结

1.KeyEvent事件

keyEvent

源码位于android.view下,包装管理所有按键有关输入的事件体系,KeyEvent和MotionEvent的分发流程一样,都是InputEvent的子类,都是从Activity开始的,KeyEvent主要有以下事件类型:

KeyEvent.KEYCODE_DPAD_UP; 上

KeyEvent.KEYCODE_DPAD_DOWN; 下

KeyEvent.KEYCODE_DPAD_LEFT;左

KeyEvent.KEYCODE_DPAD_RIGHT;右

KeyEvent.KEYCODE_DPAD_CENTER;确定键

KeyEvent.KEYCODE_DPAD_RIGHT; 右

KeyEvent.KEYCODE_XXX:数字键 (xx表示你按了数字几)

KeyEvent.KEYCODE_BACK; 返回键

KeyEvent.KEYCODE_HOME;房子键

KeyEvent.KEYCODE_A: A-Z,26个字母

KeyEvent.KEYCODE_MENU菜单键。

一般使用方法如下所示:

public boolean onKeyDown(int keyCode, KeyEvent event) {

switch (keyCode) {

//模拟器测试时键盘中的的Enter键,模拟ok键(推荐TV开发中使用蓝叠模拟器)

case KeyEvent.KEYCODE_ENTER:

break;

case KeyEvent.KEYCODE_DPAD_CENTER:

Toast("你按下中间键");

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

Toast("你按下下方向键");

break;

case KeyEvent.KEYCODE_DPAD_LEFT:

Toast("你按下左方向键");

break;

case KeyEvent.KEYCODE_DPAD_RIGHT:

Toast("你按下右方向键");

break;

case KeyEvent.KEYCODE_DPAD_UP:

Toast("你按下上方向键");

break;

}

return super.onKeyDown(keyCode, event);

}

或者可以复写onKeyUp();

2.KeyEvent事件分发

dispatchKeyEvent()

主要处理按键的分发。avtivity和view都拥有此方法,两种有所区别的,实际都是交给DecorView来处理。

public boolean dispatchKeyEvent(KeyEvent event) {

你可能感兴趣的:(android,tv,key事件)