文章目录
最近在做一个手柄蓝牙连接手机,通过手柄控制手机的焦点需求,这里简单总结记录下。
先分析一下需求:
通过手柄摇杆或者十字按键控制手机的焦点,控制一个左侧箭头是减按钮,中间是显示数量的TextView
文本,右侧箭头是增加按钮,当向左摇动摇杆或者按十字按键的左按键进行减少操作,当向右摇杆或者按十字按键的右按键进行增加操作。
最后,当选中某一列的时候,底部要给一个选中的反馈效果。
demo地址:https://github.com/jakezhang1990/BluetoothHandleDemo
看一效果图:
也就是说期望的效果是:
按十字按键的左按键或者左摇杆,数字减少;
按十字按键的右按键或者右摇杆,增加;
按十字按键的向下十字按键或者向下摇杆到最后一个条目,吐司提示,是最后一个条目了,焦点停留在这里。
首先,手柄设备蓝牙连接到手机,这没什么说的,直接按照手柄的说明书进行连接即可。
其次,就是拦截,在onKeyDown
方法中进行拦截。
KeyEvent.KEYCODE_DPAD_LEFT 左摇杆或者十字按键左按键按下事件。
KeyEvent.KEYCODE_DPAD