检查Motion事件android中哪个方向被晃动

检查Motion事件android中哪个方向被晃动,第1张

概述所以我想要检测用户在触摸屏幕时移动手指的方向 现在它正在为3个方向工作,但“向上”运动不会被调用. 这是我的代码: @Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN: { // store the X va 所以我想要检测用户在触摸屏幕时移动手指的方向
现在它正在为3个方向工作,但“向上”运动不会被调用.

这是我的代码:

@OverrIDepublic boolean ontouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN: {    // store the X value when the user's finger was pressed down    downXValue = event.getX();    downYValue = event.getY();    break;}case MotionEvent.ACTION_UP: {    // Get the X value when the user released his/her finger    float currentX = event.getX();    float currentY = event.getY();        //check if horizontal or vertical movement was bigger    if (Math.abs(downXValue - currentX) > Math.abs(downYValue)        - currentY) {    Log.e("motionevent","x");    // going backwards: pushing stuff to the right    if (downXValue < currentX) {        Log.e("motionevent","right");    }    // going forwards: pushing stuff to the left    if (downXValue > currentX) {        Log.e("motionevent","left");    }    } else {    Log.e("motionevent","y");    if (downYValue < currentY) {        Log.e("motionevent","up");    }    if (downYValue > currentY) {        Log.e("motionevent","down");    }    }    break;}}    return true;}

检查水平或垂直运动是否有问题?因为无论何时我做一个向上运动,右边或左边都会被召唤.下来工作正常.

解决方法 您的运动计算中有错误.我修好了,现在好了.

switch (event.getAction()) {                case MotionEvent.ACTION_DOWN: {                    // store the X value when the user's finger was pressed down                    downXValue = event.getX();                    downYValue = event.getY();                    Log.v("","= " + downYValue);                    break;                }                case MotionEvent.ACTION_UP: {                    // Get the X value when the user released his/her finger                    float currentX = event.getX();                    float currentY = event.getY();                    // check if horizontal or vertical movement was bigger                    if (Math.abs(downXValue - currentX) > Math.abs(downYValue                            - currentY)) {                        Log.v("","x");                        // going backwards: pushing stuff to the right                        if (downXValue < currentX) {                            Log.v("","right");                        }                        // going forwards: pushing stuff to the left                        if (downXValue > currentX) {                            Log.v("","left");                        }                    } else {                        Log.v("","y ");                        if (downYValue < currentY) {                            Log.v("","down");                        }                        if (downYValue > currentY) {                            Log.v("","up");                        }                    }                    break;                }            }
总结

以上是内存溢出为你收集整理的检查Motion事件android中哪个方向被晃动全部内容,希望文章能够帮你解决检查Motion事件android中哪个方向被晃动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存