一个按钮,捕获触屏的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() 去做触摸判断?
为什么不用
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在这里就看以感应到按钮被按下时间
}
});
如果你真想用event.getAction()
应该是重写父类onTouchEvent方法
//在这里在判断被按下!!!
@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试一下
------解决方案--------------------
有可能你的down事件里面做了太多的事,导致程序还没响应up你有down了
建议较多的事情放到另一个线程里面做,这样可以避免你说的那种情况。。。
------解决方案--------------------
实现双击监听