android - Dragging objects using ACTION_MOVE -


i trying make drawn sprites dragable little game. should able touch anywhere , sprites should move same distance, finger moves.

with following method move on action_move event, slow, shorter distance , dont: addtox/y adds gap coordinates of sprites

@override public boolean ontouchevent(motionevent evt){     switch(evt.getaction()){         case motionevent.action_down:         break;      case motionevent.action_move:         if(gethistorysize() > 0){             for(int = 1, n = evt.gethistorysize(); < n; i++){                 int calcx = (int) gethistoricalx(i) - (int) gethistoricalx(i-1);                 int calcy = (int) gethistoricaly(i) - (int) gethistoricaly(i-1);                 for(sprite sprite : spritelist) {                     sprite.addtox(calcx);                     sprite.addtoy(calcy);                 }             }         }     return true; } 

any ideas on this?

assuming sprite class (potentially-indirect) extension of android.view.view, can use setondraglistener() define ondrag() override them. can use startdrag(...) on them begin drag. typically triggered long-press gesture on view dragged, in case can trigger within ontouchevent() in action_move once (or action_down). see here more details on these methods.

also, respect code posted, 1 issue explains why doesn't work using historical points (which may or may not have accumulated on particular call ontouchevent()). whether or not gethistorysize() greater 0, should still use evt.getx() , evt.gety() on each call ontouchevent(). of course, if use drag listener approach suggested instead, won't need worry this.


update per comment

if want move of sprites @ once, can put sprites full-screen framelayout , attach gesturedetector uses gesturedetector.simpleongesturelistener capture onscroll() callbacks , calls scrollto() on framelayout. when parent framelayout scrolls, of children sprites appear move together.


Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

javascript - Ajax jqXHR.status==0 fix error -