Android的触摸起来不工作(Android Touch UP not working)

2019-09-20 03:28发布

IM还挺坚持这一项目在机器人即时通讯试图弄清楚这是为什么不工作,但我没有idea.This是顺便说一句,以防万一自定义视图。

问题是这样的事件ACTION_DOWN工作完全即时得到控制台调试“触摸1”和“2触摸”但ACTION_UP,ACTION_CANCEL或默认:不工作我不能算出这个所以任何帮助将非常感激谢谢

        public void doTouch(MotionEvent event)
        {
            int action = event.getAction();

            float x = event.getX();
            float y = event.getY();

            switch(action)
            {
            case MotionEvent.ACTION_DOWN:
                if(x < 125 && y < 125){
                    for(AnimatedSprite a:mSprites)
                    {
                        if(a.getID() == 1)
                        {
                            a.AdvanceToFrame(0);
                            touching = true;
                            System.out.println("Touching 1");
                            //touch_obj1 = true;
                        }
                    }
                }
                else if(x > getWidth()-125 && y > getHeight()-125)
                {
                    for(AnimatedSprite a:mSprites)
                    {
                        if(a.getID() == 2)
                        {
                            a.AdvanceToFrame(1);
                            System.out.println("Touching 2");
                            touching = true;
                            //touch_obj2 = true;
                        }
                    }
                }
                else
                {
                    touching = false;
                }
                break;
                case MotionEvent.ACTION_CANCEL:
                case MotionEvent.ACTION_UP:

                    System.out.println("Touch UP");
                    touching = false;
                    break;

                default:
                    System.out.println("NOT Touching");
                    touching = false;
                break;
            }
        }

这里是IM调用doTouch功能

public boolean onTouchEvent(MotionEvent event)
        {
            thread.doTouch(event);
            return super.onTouchEvent(event);
        }

Answer 1:

它看起来像你的问题是你要处理的触摸事件的方式onTouchEvent 。 你需要从返回true onTouchEvent如果你要处理的触摸事件。 所以,如果你得到一个ACTION_DOWN ,并从返回false onTouchEvent系统不会向您发送相关的,直到下一次更多的触摸事件ACTION_DOWN事件。

不知道正是你与触摸事件做什么,我不能给你一个解决方案,一定会为你的情况下工作,但如果你想获得比其他任何触摸事件ACTION_DOWN你需要从返回true onTouchEvent



Answer 2:

好吧,我得到这个固定的什么我必须做的是这样的

1)我改变了功能,因此它可以返回

boolean public bool doTouch(MotionEvent event)

2)当然,我在该函数的返回端真

3)打电话时,我这样做

  public boolean onTouchEvent(MotionEvent event)
    {
        return doTouch(event);
    }


文章来源: Android Touch UP not working