Android:在MotionEvent.ACTION\u移动时长按按钮
好的。。。在我的应用程序中,我更新MotionEvent.ACTION_上的布局,然后检查运动事件坐标以找到我的按钮。当手指按不同的按钮时,我可以举杯祝酒。问题是我需要长时间触摸按钮才能调用另一个操作,而不会与MotionEvent.action\u UP冲突。实现了一个长单击处理程序,但由于我没有“单击”,它无法工作。希望你们能理解我的问题 让我的应用程序按预期运行的最佳方式是什么 我的类实现了OnTouchListener、OnTestureListenerAndroid:在MotionEvent.ACTION\u移动时长按按钮,android,button,ontouchlistener,motionevent,Android,Button,Ontouchlistener,Motionevent,好的。。。在我的应用程序中,我更新MotionEvent.ACTION_上的布局,然后检查运动事件坐标以找到我的按钮。当手指按不同的按钮时,我可以举杯祝酒。问题是我需要长时间触摸按钮才能调用另一个操作,而不会与MotionEvent.action\u UP冲突。实现了一个长单击处理程序,但由于我没有“单击”,它无法工作。希望你们能理解我的问题 让我的应用程序按预期运行的最佳方式是什么 我的类实现了OnTouchListener、OnTestureListener @Override pu
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
// UPDATE LAYOUT
break;
case MotionEvent.ACTION_UP:
// GET BUTTON X Y
if (x and y match the button location){
// DO ACTION
}else{
// DO NOTHING
}
// CHANGE LAYOUT TO INITIAL STATE
break;
case MotionEvent.ACTION_MOVE:
break;
}
return false;
mybutton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// DO STUFF
return true;
}
});
}
只要试着在你的
onTouch(…)
方法中返回false
,然后像往常一样使用onLongClickListener(…)
。我想这就是我尝试过的。。。更新了代码。我需要从移动事件中直接进行长时间的触摸,而无需抬起手指再次触摸,因为我的布局将在motionEvent\u UP之后切换回正常状态。那么,您需要在onTouchEvent()中添加一些计时器,然后开始操作\u DOWN-这样您就可以实现自己的onLongClickListener(…)但别忘了定期检查手指的位置,就像我对按钮位置的检查一样,我想。。。当到达按钮区域时,是否有一种方法可以消除持续的x y更新。它会多次触发事件,因为它非常敏感。当我检测到我的长触摸计时器时,如何避免触发up事件。。。我猜这两个动作都会在动作事件发生时触发。你们在动作发生时执行定时器,所以当你们按下按钮时它只会触发一次,之后你们在做什么并不重要。