获取当前的android游戏手柄轴位置

时间:2016-10-14 01:48:56

标签: java android joystick gamepad pad

我用dispatchGenericMotionEvent(android.view. MotionEvent)方法从我的蓝牙游戏手柄控制器接收轴位置。 我的方法:

    @Override
public boolean dispatchGenericMotionEvent(final MotionEvent event) {
    if( mPadListener==null ||
            (event.getSource()&InputDeviceCompat.SOURCE_JOYSTICK)!=InputDeviceCompat.SOURCE_JOYSTICK ){
        return super.dispatchGenericMotionEvent(event);
    }

    int historySize = event.getHistorySize();
    for (int i = 0; i < historySize; i++) {
        // Process the event at historical position i
        Log.d("JOYSTICKMOVE",event.getHistoricalAxisValue(MotionEvent.AXIS_Y,i)+"  "+event.getHistoricalAxisValue(MotionEvent.AXIS_Z,i));
    }
    // Process current position
    Log.d("JOYSTICKMOVE",event.getAxisValue(MotionEvent.AXIS_Y)+" "+event.getAxisValue(MotionEvent.AXIS_Z));

    return true;
}

问题在于,当我释放所有操纵杆轴时,我没有在我的日志中获得最后一个轴值(0,0)。它例如在(0.23,0.11)中停止,并且只有在下一个移动事件之后,适当的值才会出现在logcat中。更重要的是 - 即使我按下普通按钮(按钮事件被完全其他方法dispatchKeyEvent(android.view.KeyEvent)捕获),情况也是一样的

发生了什么事?

0 个答案:

没有答案