在android下,多点触控检测非常慢

时间:2011-08-11 21:36:33

标签: android performance multi-touch

我有一个渲染的场景,最多需要14毫秒才能绘制和显示。 所以应用程序在60 fps下运行没有任何问题。

但是当我开始在设备上移动手指时,我发现时间会增加很多。 最多可能需要4毫秒。

当然在这种情况下,我的场景不再以60 fsp显示。 这是正常的吗?可能有更快的方法来检测多点触控吗?

我的multouch方法就是这个:

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;
}    

0 个答案:

没有答案