2016-01-27 5 views
0

Я пробовал событие для Android. Тем не менее, я не знаю, почему он не может перейти к> делу MotionEvent.ACTION_MOVE:Android Motion Event

Вот мои коды.

@Override 
public boolean onTouch(View v, MotionEvent event) { 

    int action = event.getAction(); 
    switch (action){ 
     case MotionEvent.ACTION_DOWN: 

      startX = (int)event.getX(); 
      startY = (int)event.getY(); 
      selecting=false; 
      break; 
     case MotionEvent.ACTION_MOVE: 
      selecting=true; 
      break; 
     case MotionEvent.ACTION_UP: 
      if(selecting){ 
       endX = (int)event.getX(); 
       endY = (int)event.getY(); 
       selected=true; 
      } 
      selecting=false; 
      break; 

    } 
} 

Независимо от того, как я красть и потрогать, даже если я удалю, если (выбор) состояние в случае MotionEvent.ACTION_UP, всегда показывают такой же вывод.

старт: {498,0, 365,0}
конец: {0,0, 0,0}
выбирать: ложные
выбраны: ложные

После того как я изменить его на

общественного boolean onTouchEvent (событие MotionEvent)

все в порядке. Может ли кто-нибудь объяснить мне, почему это происходит?

Если возможно, помогите мне решить эту проблему. How to get the actual point when I touch on screen?

ответ

1

Для того, чтобы получить следующие MotionEvents, вы должны вернуть true в методе onTouchEvent.

source