【发布时间】:2019-10-10 20:15:19
【问题描述】:
我正在制作一个简单逻辑电路的单屏应用程序。我正在使用onTouchEvent 来处理用户交互。我现在正在使用ACTION_UP、ACTION_MOVE 和ACTION_DOWN,但这仅允许我使用一种手势。我希望能够在我的 UI 中选择一个选项,例如“AND”门。我想用一个触摸来选择我想要做的事情,然后下一个触摸将门放在屏幕上。相反,我的onTouchEvent 只允许我触摸我想要的组件,我必须将手指放在屏幕上才能将其拖动到我想要放置的位置。这不是我想要的。
我尝试研究如何实现某种状态变量以允许onTouchEvent 等待下一次触摸,但我认为我没有正确理解如何实现它。
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
Log.d("Debugging", "In onTouchEvent");
if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
Touch.horizontalTouched = (int)motionEvent.getX()/ grid.getBlockSize();
Touch.verticalTouched = (int)motionEvent.getY()/ grid.getBlockSize();
whatWasTouched = whatWasTouched(Touch.horizontalTouched, Touch.verticalTouched);
}else if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_MOVE){
//do nothing, finger is moving on screen
}
else if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP){
Touch.secondHorizontalTouch = (int)motionEvent.getX()/ grid.getBlockSize();
Touch.secondVerticalTouch = (int)motionEvent.getY()/ grid.getBlockSize();
placeComponent();
draw();
}
return true;
}
我希望我在屏幕上的第一次触摸能够选择一个选项,例如:“AND”、“OR”、“NOT”、“SWITCH”、“EDIT”等,然后我的第二次触摸完成想要的动作。我还希望能够触摸我放置在屏幕上的组件,然后触摸另一个组件,以便将它们连接在一起。
【问题讨论】:
标签: java android android-studio state touch-event