2014-07-04 63 views
0

我正在使用android的拖放api。我希望我的觀點能夠大塊地移動,即運動不應該是連續的。假設這個單位是50個像素。所以我希望我的視圖能夠移動每50個像素,而不是介於兩者之間。同時拖動視圖

當我按照以下方式進行拖動時,有很多閃爍。 (好吧不只是閃爍,整個事情只是不按我期望的方式工作)

@Override 
public boolean onDrag(View v, DragEvent event) { 
    int action = event.getAction(); 
    switch (action) { 
     case DragEvent.ACTION_DRAG_LOCATION: 
      View view = (View) event.getLocalState(); 
      if(event.getX() > view.getX()){ 
       view.setX(view.getX() + 50); 
      } else if (event.getX() < view.getX()){ 
       view.setX(view.getX() - 50); 
      } 
      break; 
     default: 
      break; 
    } 
    return true; 
} 

任何幫助,將不勝感激!

回答

0

此代碼應該很好地工作:

final int SIZE = 50; 
    View view; 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     int action = event.getAction(); 
     switch (action) { 
      case MotionEvent.ACTION_DOWN: 
      case MotionEvent.ACTION_UP: 
      case MotionEvent.ACTION_MOVE: 
       setX(event.getX()/SIZE); 
       setY(event.getY()/SIZE); 
       return true; 
     } 
     return super.onTouchEvent(event); 
    }