2012-02-29 62 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