Как обнаружить при длительном нажатии (может быть на 4 мин) непрерывное перемещение объекта на холсте - PullRequest
1 голос
/ 12 ноября 2011

Приветствие,

Я взял canvas, используя Surface View., И я перемещаю поверхность, чтобы показать движение объекта.Но моя проблема в том, что если я нажму холст, то какой-то объект будет перемещен до тех пор, пока пользователь не снимет давление с холста.Я пробовал действие action_down in touch. Но это работает только один раз.Поэтому мне нужно снова и снова касаться, чтобы переместить объект

1 Ответ

1 голос
/ 12 ноября 2011

две вещи о событиях касания.один всегда возвращает true, если вы хотите использовать их и держать их на виду.два используют action_move

 public boolean onTouch(View v, MotionEvent event){
    if(event.getAction() == MotionEvent.ACTION_DOWN){
        saveEvent = event;
    }else if(event.getAction() == MotionEvent.ACTION_MOVE){
        //diff savedEvent and event
        //on 2.0 above its getX(0)
        diffX = event.getX() - savedEvent.getX();
        diffY = event.getY() - savedEvent.getY();
        moveObject(diffX,diffY);
        savedEvent = event;
    }else if(event.getAction() == MotionEvent.ACTION_UP){
        savedEvent = null;
    }
    return true;
 }
...