Android MotionEvent.Action\u UP失败

Android MotionEvent.Action\u UP失败,android,Android,我正在ontouchevent上编写一个简单的代码..代码是 class MyTouchListener implements View.OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if(event.getAction()==Mot

我正在ontouchevent上编写一个简单的代码..代码是

class MyTouchListener implements View.OnTouchListener{

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub

            if(event.getAction()==MotionEvent.ACTION_DOWN)
            {    Log.i(TAG, "^^^^^^^^^^^ACTION DOWN^^^^^^^^^^^^");
            }

            else if(event.getAction()==MotionEvent.ACTION_UP)
            {
                 Log.i(TAG, "^^^^^^^^^^^ACTION UP^^^^^^^^^^^^");
            }
}
当我按下屏幕时,它向下打印动作^^^^^ 但是,当我释放屏幕时,它不会打印动作


意味着MotionEvent.ACTION\u UP失败..为什么会这样呢?

好的,ACTION\u DOWN只在该ACTION move发生之后发生一次,并且在和ACTION UP中

但有一个问题,例如,如果你有一个48dip x 48dip的可触摸区域,如果你触摸该区域并将手指移开(拖动时),我的意思是你按下并将手指从可触摸区域拖开,那么动作就不会发生

只有当您在屏幕上使用微调器但仍处于可触摸区域时,才会发生动作。我希望你能理解我想说的话


如果您希望鼠标移动到可触摸区域,不要将手指拖离屏幕,您知道,就像录制一样,向上事件将发生。

好的,动作\u向下只发生一次,在该动作发生后,在和向上动作中

但有一个问题,例如,如果你有一个48dip x 48dip的可触摸区域,如果你触摸该区域并将手指移开(拖动时),我的意思是你按下并将手指从可触摸区域拖开,那么动作就不会发生

只有当您在屏幕上使用微调器但仍处于可触摸区域时,才会发生动作。我希望你能理解我想说的话


如果您希望鼠标移动到可触摸区域,不要将手指拖离屏幕,您知道,就像录制一样,移动事件将发生。

尝试使用MotionEvent。操作\u取消

 @Override
    public boolean onTouch(final View view, final MotionEvent motionEvent) {

        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                setColorFilter(Color.argb(155, 185, 185, 185));
        }
        else if (motionEvent.getAction() == MotionEvent.ACTION_UP || motionEvent.getAction() == MotionEvent.ACTION_CANCEL) {
                setColorFilter(Color.argb(0, 185, 185, 185));

        }
        return false;
    }
或者在ontouch方法中添加日志
Log.d(“tag”、“motionEvent=“+motionEvent”)

尝试使用MotionEvent.ACTION\u取消

 @Override
    public boolean onTouch(final View view, final MotionEvent motionEvent) {

        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                setColorFilter(Color.argb(155, 185, 185, 185));
        }
        else if (motionEvent.getAction() == MotionEvent.ACTION_UP || motionEvent.getAction() == MotionEvent.ACTION_CANCEL) {
                setColorFilter(Color.argb(0, 185, 185, 185));

        }
        return false;
    }
或者在ontouch方法中添加日志
Log.d(“tag”、“motionEvent=“+motionEvent”)

从onTouch()方法返回什么值?如果您返回false-意味着侦听器将不再接收任何事件,那么您应该返回true。您从onTouch()方法返回什么值?如果您返回false-意味着侦听器将不再接收任何事件,因此您应该返回true。为我工作,谢谢。如果你按下一个按钮,然后屏幕旋转开始,你会得到一个取消。为我工作,谢谢。如果你按下一个按钮,然后屏幕旋转开始,你会得到一个取消。