1

我创建了一个 View 来监听触摸事件,然后在你触摸时画一个圆圈。目前,它只跟踪触摸的垂直位置。

有一些有趣的代码部分:

触摸事件:

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,我发现手指后面的圆圈很慢。它很顺利,但有延迟。

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

谢谢你。

4

0 回答 0