2013-11-23 236 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