穿裤衩闯天下

Android设置OnTouchListener监听Button的onDown与onUp

Android中的Button有个很简单的监听事件方法,只要给Button设置上OnClickListener事件就行了,这个只要写Button控件一般都会用到此方法,不然你的button就是个摆设,不过这种设置方法只能监听Button的点击事件,并不能去监听按钮的按下和提起,本来以为要自定义Button才能监听,发现Button控件 有个setOnTouchListener(OnTouchListener listener)方法,然后重写onTouch()方法,自己去判断是onDownonUponMove事件,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private OnTouchListener butTouchListener= new OnTouchListener() {
/**
* 要自己重写onTouch()方法,具体事件都是在这里边处理,
* 但要记得在判断过MotionEvent的事件之后要正确的处理返回值,不然点击事件会直接向下传递,
* 就监听不到按下和提起事件了,以及按下的效果也都会显示不出来
*/
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//这里填写你按下要处理的事情,这里要返回true才能触发提起事件
return true;
case MotionEvent.ACTION_MOVE:
//这里一般留空,
return false;
case MotionEvent.ACTION_UP:
//这里写上按钮提起时处理的事情,这里要返回true才能触发提起事件
return true;
}
return false;
}
}

然后只要给Button.setOnTouchListener(butTouchListener);这样就可以监听按钮的提起和按下了,其中的Action_MOVE return false也是必须的,不然会看不到按钮的按下效果
如果是自定义控件的话这个监听就更灵活了,现在先不说自定义控件了!

阿弥陀佛,施主,来个馒头吧 😋 ~