Android视图中对onTouchEvent的响应缓慢

时间:2012-10-19 10:20:58

标签: android performance view touch

我创建了一个可以侦听触摸事件的视图,然后在您触摸时绘制一个圆圈。目前,它仅跟踪触摸的垂直位置。

有一些有趣的代码部分:

的onTouchEvent:

public boolean onTouchEvent(MotionEvent event) {

    int actionType = event.getAction();
    if (actionType == MotionEvent.ACTION_MOVE || actionType == MotionEvent.ACTION_DOWN ) {

        int px = getMeasuredWidth() / 2;
        int py = getMeasuredHeight() / 2;

        touchY = (event.getY() - py);

        if (touchY < 25 && touchY > -25) {
            touchY = 0;
        }
        invalidate();
    }
    return true;
}

另外,onDraw:

@Override
protected void onDraw(Canvas canvas) {
    int px = getMeasuredWidth() / 2;
    int py = getMeasuredHeight() / 2;
    int radius = px - innerPadding;

    canvas.drawCircle(px, touchY+py, radius - innerPadding, circlePaint);
    canvas.save();
}

它有效,但我发现考虑到我有一个Galaxy S3,手指后面的圆圈很慢。它很顺利但有延迟。

关于如何更好地实现这一点的任何建议?

谢谢。

0 个答案:

没有答案