获触屏的ACTION_DOWN及 ACTION_UP操作点击很快的时候(类似双击)不正常
一个按钮,捕获触屏的ACTION_DOWN及 ACTION_UP操作,在down时给按钮设置一高亮背景图,在up时设置一灰置背景图,为什么点击很快的时候(类似双击)不正常? 结果为一直显示高亮背景图, 为什么啊???
case R.id.ptz_down_btn:
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:// 屏幕按下
Log.e("11111111111 ", "11111111111");
down_btn.setBackgroundDrawable(this.getResources().getDrawable(
R.drawable.ptz_down_focus));// 按键按下时高亮显示背景图,在点击抬起时再置灰;
break;
case MotionEvent.ACTION_UP:// 按下抬起
Log.e("22222 ", "2222222222222");
down_btn.setBackgroundDrawable(this.getResources()
.getDrawable(R.drawable.ptz_down_blur));// 按键按下时高亮显示背景图,在点击抬起时再置灰;
break;
}
break;
正常点击结果:
111111
2222222
点击很快的时候:
11111
2222222
11111
R.id.ptz_down_btn 是一个按钮吧, 你为什么要用event.getAction() 去做触摸判断?
为什么不用
Java code?button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //在这里就看以感应到按钮被按下时间 } });
如果你真想用event.getAction()
应该是重写父类onTouchEvent方法
Java code?//在这里在判断被按下!!! @Override public boolean onTouchEvent(MotionEvent event) { // 获得触摸的坐标 int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()) { // 触摸屏幕时刻 case MotionEvent.ACTION_DOWN: UpdateTouchEvent(x, y); break; // 触摸并移动时刻 case MotionEvent.ACTION_MOVE: break; // 终止触摸时刻 case MotionEvent.ACTION_UP: break; } return super.onTouchEvent(event); }
监听一下MotionEvent.ACTION_CANCEL试一下