обнаружение мультитач очень медленно под Android - PullRequest
1 голос
/ 12 августа 2011

У меня есть отрендеренная сцена, на рисование и отображение которой уходит до 14 мс.поэтому приложение работает без каких-либо проблем со скоростью 60 кадров в секунду.

, но когда я начинаю двигать пальцами по устройству, я вижу, что время значительно увеличивается.Это может занять до 4 мс.

Конечно, в этом случае моя сцена больше не отображается в 60 fsp.это нормально?Может быть, есть более быстрый способ обнаружения мультитача?

Мой метод мультитача такой:

public boolean onTouchEvent(MotionEvent ev) {
 // TODO Auto-generated method stub
    int nbPts = ev.getPointerCount();
    if (nbPts > _nb_touch_detect) nbPts = _nb_touch_detect;

    int pointerIndex = ((ev.getAction() & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT);
    int pointerId = ev.getPointerId(pointerIndex);
    int action = (ev.getAction() & MotionEvent.ACTION_MASK);
    int pointCnt = ev.getPointerCount();

    if (pointCnt <= nbPts)
    {
        if (pointerIndex <= nbPts - 1)
        {
            for (int i = 0; i < pointCnt; i++)
            {
                int id = ev.getPointerId(i);
                x_touch[id] = (int)ev.getX(i);
                y_touch[id] = (int)ev.getY(i);
            }

            switch (action)
            {
                case MotionEvent.ACTION_DOWN:
                case MotionEvent.ACTION_POINTER_DOWN:
                case MotionEvent.ACTION_MOVE:
                    isTouch[pointerId] = true;
                break;
                default:
                    isTouch[pointerId] = false;
            }
         }   
     }
     return true;
}    
...