2013-11-23 65 views
0

的的TouchEvent我想刪除按鈕的TouchEvent當用戶移動出Button刪除按鈕

我已經檢測到用戶的運動:

case MotionEvent.ACTION_DOWN: 

      rect = new Rect(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()); 

      break; 

    case MotionEvent.ACTION_MOVE: 

      if(!rect.contains(v.getLeft() + (int) event.getX(), v.getTop() + (int) event.getY())){ 
         logIt("You are OutSide..."); 
        } 

        break; 

任何人都可以推薦該怎麼辦那...... 任何答覆讚賞... THKS

回答

0

重寫代碼: -

情況下MotionEvent.ACTION _down:

 rect = new Rect(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()); 

     break; 

情況下MotionEvent.ACTION_UP:

 if(!rect.contains(v.getLeft() + (int) event.getX(), v.getTop() + (int) event.getY())){ 
        logIt("You are OutSide..."); 
       } 

       break; 
+0

我想刪除我的按鈕的onTouchEvent ....當我的用戶移出按鈕區域... :) – nitesh

+0

我想當你設置ACTION_UP那麼你的觸摸事件將刪除 –

+0

正確,但我希望它刪除觸摸事件 – nitesh

0

試試這個...

case MotionEvent.ACTION_DOWN: 
     rect = new Rect(v.getLeft(), v.getTop(), v.getRight(),v.getBottom()); 
     break; 
    case MotionEvent.ACTION_MOVE: 
     if (!rect.contains(v.getLeft() + (int) event.getX(), v.getTop()+ (int) event.getY())) { 
      Log.i(TAG, "You are outside"); 
      return false; 
     } 
     break; 

和這個完整的代碼會給你一些想法...

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     rect = new Rect(v.getLeft(), v.getTop(), v.getRight(),v.getBottom()); 
     break; 
    case MotionEvent.ACTION_MOVE: 
     if (!rect.contains(v.getLeft() + (int) event.getX(), v.getTop()+ (int) event.getY())) { 
      Log.i(TAG, "You are outside"); 
      return false; 
     } 
     break; 
    } 
    return true; 
} 
+0

我已經使用了Actitvity的onTouch ...但它是沒有捕捉任何事件...至於deathember提到 – nitesh

0

最簡單的方法:

onTouchEvent(MotionEvent event){ 

... 

case MotionEvent.ACTION_MOVE: 
    event.setAction(MotionEvent.ACTION_UP); 
    return super.onTouchEvent(event); 
... 
} 

在這種情況下,您將拒絕與您的按鈕相關的所有下一個事件。

+0

返回super.onTouchEvent(event);未定義... – nitesh

+0

@nitesh它是如何定義的? onTouchEvent()在Activity和View中可用。你在哪裏寫這個代碼? –

+0

@deathember ...在Actitvity onTouchEvent()事件或BUtton中設置setOnTouchListener() – nitesh