我有一个渲染的场景,最多需要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;
}