我的触摸监听器有问题,实际上无法正常工作。
@Override
public boolean onTouchEvent(MotionEvent event) {
touchControll.processTouchEvent(event); //should do everything!
invalidate();
return true;
}
Methode processTouchevent 只需将事件监视放在原处并进行处理。因此,如果触摸在游戏手柄内部,它会处理游戏手柄的"操作"。但是,如果我现在想处理 hitButton 事件,它不会做出反应。
例
public void processHitButtonTouch(MotionEvent event){
int touchPosX = (int) event.getX();
int touchPosY = (int) event.getY();
if(event.getAction() == MotionEvent.ACTION_DOWN)
if(touchPosX > Config.BLOCKSIZE*37 && touchPosY > Config.BLOCKSIZE*3 && touchPosY < Config.BLOCKSIZE*7){
this.hitButton.buttonStatus = Pressed.PRESSED;
}
}
在每次MotionEvent.ACTION_UP我都会像这样重置整个内容:
if(event.getAction() == MotionEvent.ACTION_UP){
joyPad.status = Status.IDLE;
charac.setStatus(Status.IDLE);
this.hitButton.buttonStatus = Pressed.UNPRESSED;
}
如果它实际上使用 Loggincat 处理超过 1 个事件并且确实如此,我并列(记录了 2 次触摸 2 次下降事件!但它根本不像我在这里那样工作。我做错了什么?!
非常感谢您的帮助!
在 Android 中,触摸事件仅由一个视图捕获,因此,当您将手指放在游戏手柄上时,如果您的 hitButton 没有反应,这是正常的。
要使用多点触控,您必须实现包含所有按钮的全局视图(游戏手柄,点击按钮...因此,此视图捕获事件并将其传递到游戏手柄的 touchEventListener 或 hitButton 的侦听器上。
编辑:这里有一个带有 2 个操纵杆的示例
http://code.google.com/p/mobile-anarchy-widgets/source/browse/trunk/Widgets/src/com/MobileAnarchy/Android/Widgets/Joystick/DualJoystickView.java?r=30
编辑2:一个很好的教程
http://android-developers.blogspot.fr/2010/06/making-sense-of-multitouch.html