【问题标题】:Using of MotionEvent (ACTION_MOVE)MotionEvent (ACTION_MOVE) 的使用
【发布时间】:2014-11-17 12:23:59
【问题描述】:

所以我有一个特别的问题要问你: 使用移动动作时如何捕捉按钮?如何处理屏幕上按钮(或其他元素)的移动?

我使用了 MotionEvent (ACTION_MOVE),但是通过使用该代码片段我没有得到想要的结果

在 OnCreate 中

btn1.setOnTouchListener(this); //for all of buttons on Activity

在触摸中

switch(event.getAction()) { 
  case MotionEvent.ACTION_MOVE: 
       //actions
  break;
}

动作将从开始移动的第一个按钮发生。否则什么都不会发生

此时我认为我可以将 ACTION_MOVE 用于我的 Activity 而不是每个按钮或其他元素,并将按钮的坐标(左上角和右下角)保存到 arraylist。 当运动开始时,我可以比较这个坐标和运动的真实坐标。 所以通过这种方式,我可以知道哪些按钮在移动。

可能我重新发明了轮子。这就是我向您寻求帮助的原因)

【问题讨论】:

  • 对不起,我看到了一连串的单词,但这没有意义。您想使用按钮坐标来创建拖放吗?什么?
  • 不,我不需要拖放(抱歉我的英语不好),我只想知道单个移动触摸了哪些按钮并为所有这些操作处理此操作。希望,现在你明白我的意思了

标签: android motionevent


【解决方案1】:

你能解释清楚点吗?从我看到你可能需要做两件事: 首先为所有按钮添加监听器,让您的活动实现 onTouchListener。
其次,您需要在 MotionEvent.ACTION_DOWN 中保存每个按钮的初始坐标(如果我对语法正确的话)。
这样您就可以访问所有按钮,并且可以正确保存它们的坐标

【讨论】:

  • 从上面的评论中
  • 你可以在触摸发生时获取你的按钮 ID,所以我猜你会没事的。
  • 这样我只需要首先被移动按钮 id 触摸,而不是全部(我将 ids 添加到 HashSet)
  • 好吧,如果我没有犯错,我很清楚你应该做什么,你可以循环遍历所有按钮(你应该在数组或集合中保存对它们的引用或其他东西)在您的 onTouch 中并使用 btnx.getX() 和 btnx.getY() 获取他们的坐标,这样当其中一个移动时,您将移动其他人并保存他们的坐标。
  • 我怎样才能在其中添加一张图片来向您展示我的工作?
【解决方案2】:

您将获得触摸侦听器内部的视图,您可以使用它来识别。

Button btn1 = (Button) findViewById(R.id.btn1);
Button btn2 = (Button) findViewById(R.id.btn2);
Button btn3 = (Button) findViewById(R.id.btn3);

btn1.setOnTouchListener(touchListener);
btn2.setOnTouchListener(touchListener);
btn3.setOnTouchListener(touchListener);

private OnTouchListener touchListener = new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_MOVE) {
            switch (v.getId()) {
            case R.id.btn1:
                //Button 1
                break;

            case R.id.btn2:
                //Button 2
                break;

            case R.id.btn3:
                //Button 3
                break;
            }
        }
        return false;
    }
};

【讨论】:

  • 但这仅适用于第一个移动的按钮(如果移动从它开始),而不适用于所有发生移动的按钮。而且我不添加案例,因为有一个动作可以处理所有按钮的动作动作
猜你喜欢
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 2013-10-22
相关资源
最近更新 更多