这就是我想要实现的目标:
在下图中,屏幕上有一个白点,我想在触摸屏幕的右侧部分时将白点移动到右侧,当触摸屏幕的左侧部分时,我想移动到左侧。
这是我的代码:
protected void onDraw(Canvas canvas)
{
final Bitmap mball = ball;
if (pressed){
if (touch_x>canvas.getWidth()/2)
left += 2;
else left -= 2;
}
canvas.drawBitmap(mball, left, canvas.getHeight()*0.7f, null);
invalidate();
}
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
final int action = event.getAction();
int pointerIndex;
switch (action ){
case MotionEvent.ACTION_DOWN:
touch_x = event.getX();
pressed = true;
break;
case MotionEvent.ACTION_POINTER_DOWN:
touch_x = event.getX(event.getActionIndex());
pressed = true;
break;
case MotionEvent.ACTION_UP:
mActivePointerId = -1;
pressed = false;
break;
case MotionEvent.ACTION_CANCEL: {
mActivePointerId = -1;
break;
}
}
return pressed;
}
它不按照我希望的方式工作。当用户触摸右侧部分时,白球应向右移动,如果触摸左侧部分而不抬起右手指,则球应向左移动,反之亦然。
发生的事情是,如果屏幕的右侧部分被触摸,球会继续向右移动,当触摸左侧部分而不移除右手指时,球继续向右移动。
我也尝试过将指针用于主指针和非主指针,但仍然没有运气。
任何帮助都将不胜感激。