【发布时间】:2015-02-25 04:51:30
【问题描述】:
基于这个答案,我创建了一个 rectF 的 arrayList。
Technique to make a canvas drawLine() clickable?
这是我的代码的逻辑:
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);
然后,我有这个方法来检查 clicked 和 rectF arrayList。
void lineHighighted(Point pt) {
int ct = 0;
for(RectF rectF : rectFs) {
if(rectF.contains(pt.x, pt.y)) {
ct++;
Log.d(tag, ct + "HERE");
}
}
}
我的问题是,有时,即使我没有触摸那条“线”,也会选择或“调用”整个数组列表。
我的代码有什么问题吗?
提前致谢。
附加:
我发现在我的画布中添加此代码后:
path.moveTo(coor1[0], coor1[1]);
path.lineTo(coor2[0], coor2[1]);
canvas.drawPath(path, paint2);
path.computeBounds(rectf, true);
我之前的结果:
它变成了这样:
【问题讨论】:
标签: java android canvas touch-event