android – 在屏幕上滑动手指激活按钮,就像按下它们一样

如果我的标题不够清楚,我会详细解释:

假设我们有一个充满多个按钮的屏幕(10),我们按下一个,激活onTouch / onClick.如果我们现在移动手指而不抬起它,我希望它激活它滑过的任何其他按钮.在这种特殊情况下,我想要在虚拟钢琴上滑动时播放声音.

我知道onTouchListener解决方案,你在其中注册每个ACTION_MOVE并找到一些激活新事件的边界,但如果你有多个按钮并希望允许平滑滑动而没有延迟,这远非最佳.

我还阅读了this thread,其中建议我们将View的touchListener与来自活动的gesturelistener结合起来,但是再一次,这对我的情况来说并不是最理想的.

我还没有尝试过将touchlistener与gesturelistener结合起来,但如果有人告诉我他们没有别的办法,我会继续这样做.

解决方法:

在我看来,正确的做法是忘记按钮,并创建一个绘制整个键盘的自定义视图.在此视图中,您可以按照自己喜欢的方式处理触摸事件.你甚至不需要手势探测器,只需分析动作事件的动作和坐标,这很容易.

我不明白你对ACTION_MOVE和延迟的意思.要最小化延迟,请在ACTION_DOWN上做出反应,然后在ACTION_MOVE上进行响应,如果它在处于关闭状态时悬停其他键.它不能比那更快.使用按钮会有一个重要的延迟,因为当用户抬起手指时,在ACTION_UP上触发onClick()事件.

按钮并不意味着按照你的描述工作.这个想法是,如果用户点击按钮然后同时移开他的手指,它不会触发其他视图周围的onClick事件.这可以防止虚假点击.

上一篇:[leetcode] 239. Sliding Window Maximum


下一篇:Android – 滑动碎片