2011-05-26 130 views
4

我的android应用程序中的触摸监听器有问题。 OnTouchLIstenr不适用于视图,即ACTION_DOWN在侦听器中表现良好,但ACTION_UP不会调用。我不知道最近发生了什么问题。但是,如果我设置了虚拟点击侦听器,两者都可以正常工作。为什么这样?触摸监听器不工作android

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ImageView image = (ImageView) findViewById(R.id.image); 
    image.setOnTouchListener(new OnTouchListener() {    
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      ImageView img = (ImageView) v; 
      int action = event.getAction(); 
      if (action == MotionEvent.ACTION_DOWN){ 
       img.setImageResource(R.drawable.port); 
      }else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL){ 
       img.setImageResource(R.drawable.bar); 
      }    
      return false; 
     } 
    }); 

} 

回答

3
image.setOnTouchListener(new OnTouchListener() {    
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      ImageView img = (ImageView) v; 
      int action = event.getAction(); 
      if (action == MotionEvent.ACTION_DOWN){ 
       img.setImageResource(R.drawable.port); 
      }else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL){ 
       img.setImageResource(R.drawable.bar); 
      }    


     return true; 
     } 
    }); 

只需更换return true;代替return false;和检查