我创建了一个可以侦听触摸事件的视图,然后在您触摸时绘制一个圆圈。目前,它仅跟踪触摸的垂直位置。
有一些有趣的代码部分:
的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,手指后面的圆圈很慢。它很顺利但有延迟。
关于如何更好地实现这一点的任何建议?
谢谢。