Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android触摸事件-具有上下移动事件_Java_Android_User Interface_Touch Event - Fatal编程技术网

Java Android触摸事件-具有上下移动事件

Java Android触摸事件-具有上下移动事件,java,android,user-interface,touch-event,Java,Android,User Interface,Touch Event,我有一个触摸事件的问题,我相信这是可能的 假设我有一个立方体,当我向左或向右滑动屏幕时,我希望立方体移动相同,然后当我快速触摸(向下)时,我希望立方体旋转一定量 当前,如果我滑动屏幕,立方体将根据我的需要向左或向右移动,但它也会旋转一次 这是我的密码 public boolean onTouchEvent(MotionEvent event) { if (event != null) { float x = event.getX(); //floa

我有一个触摸事件的问题,我相信这是可能的

假设我有一个立方体,当我向左或向右滑动屏幕时,我希望立方体移动相同,然后当我快速触摸(向下)时,我希望立方体旋转一定量

当前,如果我滑动屏幕,立方体将根据我的需要向左或向右移动,但它也会旋转一次

这是我的密码

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);
    }
}
上面的代码只查找向下事件,这就是它在任何类型的触摸上旋转和移动的原因
我如何实现这一点,使立方体仅在向下和向上事件连续时旋转

它是向下[->移动]->向上还是向下[->移动]->取消

但行动总是跟着行动


要检查快速触屏,请标记向下位置(x&y),然后确保向上位置在向下位置的触屏斜率(ViewConfiguration.GetScaledTouchlop())内。

好的,但是如果我想在向下时说旋转,然后是向上,而不仅仅是向下,我该怎么做?感谢在移动中,在移动对象之前,等待X delta(moveX downX)>触摸屏。在“向上”中,仅当xDelta最有意义时才旋转对象。尽管你可以从上面的代码中看到几个问题,我每次旋转45圈。触摸斜率为16,这意味着它永远不会向下和向上旋转指的是手指从表面触摸和提起,而不是表面上的运动方向。触摸屏大约是手指宽度的1/3。。因此,x方向的运动(deltaX>slop)意味着他们想要移动对象。没有运动(deltaXSlop。我希望这对其他任何人都有意义