我对Touch事件有疑问,我相信这是可能的。
让我说我有一个立方体,当我向左或向右滑动屏幕我希望立方体移动相同然后当我快速触摸(向下)我希望立方体旋转一定量。
目前,如果我滑动屏幕,那么立方体将根据需要向左或向右移动,但它也会旋转一次。
这是我的代码。
public boolean onTouchEvent(MotionEvent event)
{
if (event != null)
{
float x = event.getX();
//float y = event.getY();
if (event.getAction() == MotionEvent.ACTION_MOVE)
{
if (mRenderer != null)
{
float CubeX = (x - mPreviousX) / mDensity / 2f;
mRenderer.mCubeXMovement += CubeX;
}
}
else if (event.getAction() == MotionEvent.ACTION_DOWN)
{
if (mRenderer != null)
{
float deltaX = 45f;
mRenderer.mDeltaX += deltaX;
}
}
mPreviousX = x;
mPreviousY = y;
return true;
}
else
{
return super.onTouchEvent(event);
}
}
上面的代码只查找Down事件,这就是它旋转和移动任何类型的触摸的原因 我怎么能实现这一点,以便立方体只有在向下和向上事件顺序时才会旋转
答案 0 :(得分:1)
它要么是DOWN [ - > MOVE] - >向上或向下[ - > MOVE] - > CANCEL
但ACTION_UP始终遵循ACTION_DOWN
要检查快速触摸,请标记向下位置(x& y),然后确保UP位置位于向下位置的TOUCH_SLOP(ViewConfiguration.getScaledTouchSlop())内。