android tv盒子播放器控制 监听上下左右键。

需求是遥控器左右键控制进度 中间键控制暂停,上下键弹出选集,返回键弹出对话框提示是否结束观看。

重新onKeyDown方法。

  if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER||keyCode == KeyEvent.KEYCODE_ENTER) {

                                                     拦截中间键按下                     

        }

        keyCode  == KeyEvent.KEYCODE_DPAD_UP

                                拦截上键按下

        keyCode == KeyEvent.KEYCODE_DPAD_DOWN            

                                拦截下键按下

       keyCode == KeyEvent.KEYCODE_DPAD_LEFT

                                拦截左键按下

      keyCode == KeyEvent.KEYCODE_DPAD_RIGHT

                               拦截右键按下

     keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0

          拦截返回键按下

         

    当按下 上下两键时弹出一个popwindow来展示选集,这时弹出来的popwindwo没有焦点,所以在创建popwindow时就要给它设置获得焦          点 mSelectionsWindow.setFocusable(true);这样popwindow里的不管listview还是gridview都能用遥控器上下左右键控制了。

  可是这时返回键失效了,不能退出了,因为焦点都在popwindow上了,给popwindow设置setBackgroundDrawable这样点击返回键时popwindow就会消失掉。

    

   如果想让popwindow过个几秒钟自己消失,还要重新onKeyUp 扑捉按键抬起,在按键抬起时给handler发消息就能实现了。




你可能感兴趣的:(android,焦点,onKeyDown)