我有一个按钮(男孩),我希望,当男孩被触摸时,它可以根据用户手指的手势向左或向右滚动。
所以我实现如下:
GestureDetector myGesture;
myGesture = new GestureDetector(getContext(), new MyOnGestureListener());
image_boy.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return myGesture.onTouchEvent(event);
}
});
image_boy.setClickable(true);
class MyOnGestureListener implements OnGestureListener{
@Override
public boolean onDown(MotionEvent arg0)
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
return false;
}
@Override
public void onLongPress(MotionEvent e)
{
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
boy_x = ((int) e2.getX());
if (boy_x > (viewWidth - BOY_WIDTH))
{
boy_x = viewWidth - BOY_WIDTH - 10;
}
if (boy_x <0)
{
boy_x = 0 + 10;
}
image_boy.setX(boy_x);
image_boy.setY(viewHeight - BOY_HEIGHT);
return true;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}};
}
这个男孩一旦被触摸/按下,就可以向左和向右滚动,但看起来很奇怪,如
一旦触摸并滚动,男孩将滚动到正确的方向,但切换/摇动2个男孩图像,在其旅程中左右交换
当手指移动停止(仍然触摸)时,男孩将回到原始位置或新位置(非常不稳定)
怎么能解决这个问题?
答案 0 :(得分:0)
我已设法使用onTouch
的{{1}}:
ACTION_MOVE