文章目录
最近在做一个手柄蓝牙连接手机,通过手柄控制手机的焦点需求,这里简单总结记录下。
先分析一下需求:
通过手柄摇杆或者十字按键控制手机的焦点,控制一个左侧箭头是减按钮,中间是显示数量的TextView文本,右侧箭头是增加按钮,当向左摇动摇杆或者按十字按键的左按键进行减少操作,当向右摇杆或者按十字按键的右按键进行增加操作。
最后,当选中某一列的时候,底部要给一个选中的反馈效果。
demo地址:https://github.com/jakezhang1990/BluetoothHandleDemo
看一效果图:

也就是说期望的效果是:
按十字按键的左按键或者左摇杆,数字减少;
按十字按键的右按键或者右摇杆,增加;
按十字按键的向下十字按键或者向下摇杆到最后一个条目,吐司提示,是最后一个条目了,焦点停留在这里。
首先,手柄设备蓝牙连接到手机,这没什么说的,直接按照手柄的说明书进行连接即可。
其次,就是拦截,在onKeyDown方法中进行拦截。
KeyEvent.KEYCODE_DPAD_LEFT 左摇杆或者十字按键左按键按下事件。
KeyEvent.KEYCODE_DPAD_RIGHT 右摇杆或者十字按键右按键按下事件。
KeyEvent.KEYCODE_DPAD_UP 向上摇杆或者十字按键向上按键按下事件。
KeyEvent.KEYCODE_DPAD_DOWN 向下摇杆或者十字按键向下按键按下事件
这么多按钮,必须得根据目前焦点在哪个按钮上来判断出现在会触发哪

本文介绍如何使用蓝牙手柄的摇杆和十字按键控制Android手机焦点,实现增减操作,并解决Android 9.0上的焦点问题。通过监听KeyEvent,结合焦点监听设置反馈背景,确保操作流畅无误。在Android 9.0上,通过调整和属性解决焦点乱跑的bug。
最低0.47元/天 解锁文章
660

被折叠的 条评论
为什么被折叠?



