我有一个应用程序需要像 Iphone 中的 onTouch 滑动事件。他们是
- 向上滑动。
- 向下滑动。
- 向左滑动。
- 向右滑动。
我按如下方式实现了 onTouch 事件。我得到了正确的向左和向右滑动操作。但这是实现向下和向上滑动操作的正确方法。
我的代码:
float downXValue,downYValue;
@Override
public boolean onTouchEvent(MotionEvent arg1) {
// Get the action that was done on this touch event
switch (arg1.getAction())
{
case MotionEvent.ACTION_DOWN:
{
// store the X value when the user's finger was pressed down
downXValue = arg1.getX();
downYValue = arg1.getY();
break;
}
case MotionEvent.ACTION_UP:
{
// Get the X value when the user released his/her finger
float currentX = arg1.getX();
float currentY=arg1.getY();
// going backwards: pushing stuff to the right
if (downXValue < currentX)
{
Log.d(DEBUG_TAG, "Right");
}
// going forwards: pushing stuff to the left
if (downXValue > currentX)
{
Log.d(DEBUG_TAG, "Left");
}
break;
}
}
//GestureListener is called here...
//return gestures.onTouchEvent(event);
return true;
}
谢谢。
那...呢
if (downYValue < currentY)
{
Log.d(DEBUG_TAG, "Down");
}
你确定上面的代码是你写的吗?
编辑
好吧,我相信你。你要做的基本上是:
double sizeInX = Math.abs(downXValue - currentX);
double sizeInY = Math.abs(downYValue - currentY);
if( sizeInX > sizeInY ){
// you better swipe horizontally
} else {
// you better swipe vertically
}
我是一名优秀的程序员,十分优秀!