2013-01-19 75 views
1

我有一個Imagebutton和ActionDOWN上的setColorFilter,但如果用戶將手指從ImageButton上移開,它仍然適用於setColorFilter。如何檢測手指何時滑出ImageButton?

問:

  • 當手指滑落如何檢測?然後我可以應用setColorFilter(null);

    ImageButton i1 =(ImageButton)v.findViewById(R.id.imageButton1); i1.setOnTouchListener(新OnTouchListener(){

     @Override 
         public boolean onTouch(View v, MotionEvent event) { 
          // TODO Auto-generated method stub 
          ImageButton button = (ImageButton)v; 
          String principal = "principal"; 
          if (event.getAction() == MotionEvent.ACTION_DOWN) { 
           button.setColorFilter(0x8066bbdd); 
           return true; 
          } else if (event.getAction() == MotionEvent.ACTION_UP) { 
           button.setColorFilter(null); 
           Intent i = new Intent(getActivity(), SubView.class); 
           i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
           i.putExtra("query", principal); 
           startActivity(i); 
           return true; 
          } 
          return false; 
         } 
        }); 
    
+0

對不起。你是什​​麼意思「滑落」? – 2013-01-19 13:35:21

回答

1

您可以使用MotionEvent.ACTION_OUTSIDE

ImageButton i1 = (ImageButton)v.findViewById(R.id.imageButton1); i1.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 
     ImageButton button = (ImageButton)v; 
     String principal = "principal"; 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      button.setColorFilter(0x8066bbdd); 
      return true; 
     } else if (event.getAction() == MotionEvent.ACTION_UP) { 
      button.setColorFilter(null); 
      Intent i = new Intent(getActivity(), SubView.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      i.putExtra("query", principal); 
      startActivity(i); 
      return true; 
     } else if(event.getAction() == MotionEvent.ACTION_OUTSIDE) 
     { 

      // Do some stuffs here 
     } 

     return false; 
    } 
}); 

更新1:

如果MotionEvent.ACTION_OUTSIDE不工作,你可以嘗試MotionEvent.ACTION_CANCEL

+0

我的意思是用戶觸摸然後將手指滑出ImageButton,MotionEvent.ACTION_OUTSIDE實際上並不工作,我會嘗試更多功能 – Marckaraujo

+0

正確的答案是MotionEvent.ACTION_CANCEL,但您也幫助了我。謝謝 – Marckaraujo