根据这个答案,我创建了一个 rectF 的 arrayList。
如何使canvas的drawLine()可点击?
以下是代码逻辑:
我的问题是,有时候整个ArrayList被选中或“调用”,即使我没有触碰那一行代码。
我的代码有什么问题吗?
提前感谢。
补充:
我发现在我的画布中添加了这段代码后:
List<RectF> rectFs;
Point pt1;
Point pt2;
那么
path.moveTo(pt1.x, pt1.y);
path.lineTo(pt2.x, pt2.y);
path.computeBounds(rectF, true);
rectFs.add(rectF);
然后,我有一个方法来检查被点击和rectF数组列表。
void lineHighighted(Point pt) {
int ct = 0;
for(RectF rectF : rectFs) {
if(rectF.contains(pt.x, pt.y)) {
ct++;
Log.d(tag, ct + "HERE");
}
}
}
我的问题是,有时候整个ArrayList被选中或“调用”,即使我没有触碰那一行代码。
我的代码有什么问题吗?
提前感谢。
补充:
我发现在我的画布中添加了这段代码后:
path.moveTo(coor1[0], coor1[1]);
path.lineTo(coor2[0], coor2[1]);
canvas.drawPath(path, paint2);
path.computeBounds(rectf, true);
我的先前结果:
现在变成了这样: