2012-02-29 64 views
2

我正试图在我的应用程序上记录每个触摸事件。 到目前为止,我可以记录每一个移动和触摸事件,但是当使用拖放拖动阴影将覆盖常规移动事件。 我想知道的是,如果有一种方法可以获得拖影的每个运动的x和y坐标。在Android上获取拖动阴影位置

回答

3
@Override 
    public boolean onDrag(View v, DragEvent event) { 
     int action = event.getAction(); 
     ViewGroup owner = (ViewGroup) v.getParent(); 

     switch (event.getAction()) { 
     case DragEvent.ACTION_DRAG_STARTED: 
      break; 
     case DragEvent.ACTION_DRAG_LOCATION: 
      mCurX = (int) event.getX(); 
      mCurY = (int) event.getY(); 
      mText.setText("Cur(X, Y) : " + mCurX + ", " + mCurY); 
      break; 
     case DragEvent.ACTION_DRAG_ENTERED: 
      dragState = "DRAG_ENTERED"; 
      break; 
     case DragEvent.ACTION_DRAG_EXITED: 
      dragState = "DRAG_EXITED"; 
      break; 
     case DragEvent.ACTION_DROP: 
      Log.d(TAG, "ACTION_DRAG_ENDED"); 
      break; 
     case DragEvent.ACTION_DRAG_ENDED: 
      if(dragState == "DRAG_EXITED"){ 
        DropAction();      
      } 
      break; 
     default: 
      break; 
     } 
     return true; 
+0

这个答案在这个问题上似乎是错误的。只有拖动的对象位于放置对象的边界内时才会触发ACTION_DRAG_LOCATION。 getX()/ getY()返回边界内拖动对象的相对位置。 – GabrielWeis 2016-08-04 15:58:36