【问题标题】:How to slide to perform clicks android如何滑动以执行点击android
【发布时间】:2012-10-07 13:06:07
【问题描述】:

我正在尝试制作一个用户可以在一组按钮上滑动或拖动手指以执行点击的应用程序。我试过onTouchMotionEvent.ACTION_MOVE,但我似乎无法让它工作。按钮根本不按。这是代码:

public boolean onTouch(View v, MotionEvent arg1) {
    if (arg1.getAction() == MotionEvent.ACTION_MOVE) {

        switch (v.getId()) {
        case R.id.key1:
            key1.performClick();
            break;
        case R.id.key2:
            key2.performClick();
            break;
        case R.id.key3:
            key3.performClick();
            break;
        case R.id.key4:
            key4.performClick();
            break;
        case R.id.key5:
            key5.performClick();
            break;
        case R.id.key6:
            key6.performClick();
            break;
        case R.id.key7:
            key7.performClick();
            break;
        case R.id.key8:
            key8.performClick();
            break;
        }

    }
    return true;
}

【问题讨论】:

  • 所以......如果用户在所有按钮上滑动他/她的拇指,应用程序会注册一次点击?这是意图吗(没有双关语)
  • 是的,但它没有使用上面的代码记录对按钮的任何点击

标签: android button drag multi-touch slide


【解决方案1】:

我认为您最好捕获所有这些按钮上的关键事件,然后对每个按钮执行某种求和。例如

键 1 = 1 键2 = 1+2 键 3 = 1+2+3 ...

当您到达 keyx 时,您可以检查总和是否符合您的预期。如果是这样,用户可能会在按钮上滑动他/她的手指。使用必须按下 keyx 并且数字必须加起来为 N 的某种时间。这将避免用户按下按钮 3,然后返回按钮 1 等并仍然注册点击。

如果您想在每个按钮上注册一次点击,请设置其 onclick 侦听器并确保按钮本身是可点击的(它们应该已经是可点击的)。

【讨论】:

  • 按钮是可点击的,例如,如果我为 OnTouch() 返回 false,则按钮点击但滑动不起作用,如果我返回 true,则按下任何按钮时都不会发生任何事情。我想创建它,因此当有人在键上滑动时,它会单击他们当前所在的按钮并取消选择前一个。就像在钢琴上滑动一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多