我有一个代码,在将图像传递给函数后会自动绘制一些圆圈,其中一些圆圈是使用drawcircle()手动绘制的。现在,我想看到当用户触摸一个点时,如果已经存在一个圆圈,则隐藏/删除它。
有任何潜在客户吗?
答案 0 :(得分:1)
如果所有圆圈都被画圈淹没了。然后将所有圆圈的坐标存储在列表中,然后按区域检查单击的位置。如果region包含坐标,则click位于圆圈内,否则它位于Canvas.Below上的某个位置,它返回单击圆圈的索引。
private int findPointAt(int x, int y) {
if(dotsList!=null) {
if (dotsList.isEmpty()) {
return -1;
}
final int width = circleRadius * 2;
final Region r = new Region();
for (int i = 0; i < dotsList.size(); i++) {
final int pointX = dotsList.get(i).x;
final int pointY = dotsList.get(i).y;
r.set(pointX - width, pointY - width, pointX + width, pointY + width);
if (r.contains(x, y)) {
selectedPosition = i;
return i;
}
}
}
return -1;
}
如果返回-1,则单击在外面,否则返回圆的索引。