Android多点触控帮助

时间:2011-07-27 01:33:22

标签: android multi-touch

所以,我正在开发一个应用程序,需要同时按下两个按钮。 我需要按下时触发按钮的事件(同时也是这样)。

想象一辆车 - 我有左,右,前,后。我需要按EG。向前和向右一起向右转。

这是我的方法,但出于某些原因,当我按下两个按钮时,只触发按下的按钮...有任何想法吗?

    // Handle touches of the navigation arrows
    public boolean onTouch(View v, MotionEvent theMotion) {
        switch (theMotion.getAction()) {
        // A button was PRESSED
        case MotionEvent.ACTION_DOWN:
            switch (v.getId()) { // Which button?
            case R.id.freestyle_upArrow: // The upArrow
                bt.sendNXTcommand(MOTOR_B_FORWARD, 720);
                break;
            case R.id.freestyle_downArrow: // The downArrow
                bt.sendNXTcommand(MOTOR_B_BACKWARD, 720);
                break;
            case R.id.freestyle_leftArrow: // The leftArrow
                bt.sendNXTcommand(MOTOR_A_LEFT, 720);
                break;
            case R.id.freestyle_rightArrow: // The rightArrow
                bt.sendNXTcommand(MOTOR_A_RIGHT, 720);
                break;
            }
            break;
        // A button was RELEASED
        case MotionEvent.ACTION_UP:
            switch (v.getId()) { // Which button?
            case R.id.freestyle_upArrow: // The upArrow
                bt.sendNXTcommand(MOTOR_B_STOP, 0);
                break;
            case R.id.freestyle_downArrow: // The downArrow
                bt.sendNXTcommand(MOTOR_B_STOP, 0);
                break;
            case R.id.freestyle_leftArrow: // The leftArrow
                break;
            case R.id.freestyle_rightArrow: // The rightArrow
                break;
            }
            break;
        }
        return true;
    }

那么,有什么想法吗?它与我的屏幕上允许的点数有关吗?

PHONE SPECS:三星Galaxy Ace在固件2.2.1上运行Android操作系统

此致

2 个答案:

答案 0 :(得分:1)

使用

switch (event.getAction() & MotionEvent.ACTION_MASK)

您想要寻找

MotionEvent.ACTION_POINTER_UP
MotionEvent.ACTION_POINTER_DOWN

对于第二根手指。请记住,无论哪个手指先被抬起,你都会得到一个ACTION_POINTER_UP

答案 1 :(得分:-1)

您可以根据创建逻辑来检查 ACTION_DOWN (单触)和 ACTION_POINTER_DOWN (多点触控)。注意: ACTION_POINTER 表示多点触控本身