我创建了一个 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,我发现手指后面的圆圈很慢。它很顺利,但有延迟。
关于如何更好地实施这一点的任何建议?
谢谢你。