【发布时间】:2019-05-18 03:56:49
【问题描述】:
当用户通过单击按钮将手指从按钮上拉开但未释放时,我需要处理该操作。我尝试使用 OnTouchListener,但据我了解,它只处理手指的移动或按钮的释放。
【问题讨论】:
标签: android android-layout user-interface button ontouchlistener
当用户通过单击按钮将手指从按钮上拉开但未释放时,我需要处理该操作。我尝试使用 OnTouchListener,但据我了解,它只处理手指的移动或按钮的释放。
【问题讨论】:
标签: android android-layout user-interface button ontouchlistener
OnTouchListener 也存在:
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE) {
Rect r = new Rect(0, 0, view.getWidth(), view.getHeight());
if (!r.contains((int)event.getX(), (int)event.getY()))
// your action
return true;
}
return false;
}
});
【讨论】:
@Override
public boolean onTouchEvent(MotionEvent event) {
int action = event.getActionMasked();
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.d(TAG, "Action was DOWN");
break;
case MotionEvent.ACTION_MOVE:
Log.d(TAG, "Action was MOVE");
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "Action was UP");
break;
case MotionEvent.ACTION_CANCEL:
Log.d(TAG,"Action was CANCEL");
break;
case MotionEvent.ACTION_OUTSIDE:
Log.d(TAG, "Movement occurred outside bounds of current screen element");
break;
}
return super.onTouchEvent(event);
}
希望这段代码对您有所帮助。
【讨论】: