我在两个或多个矩形对象之间绘制箭头时遇到问题。我有一个存储几个矩形的数组列表。
例如,用户在画布上有两个矩形。单击绘制箭头按钮后,用户将能够单击第一个矩形并拖动到第二个矩形,箭头将在两个矩形之间形成。
我不知道如何获取触摸坐标以绘制箭头。我能够获取当前的 x 和 y 位置。另外,如果我的矩形移动了,我该如何重绘箭头。
我只设法画出箭头。
这是我想要实现的图像:
我的代码如下:
public static ArrayList<RectF> rects = new ArrayList<RectF>();
public void addRectangle() {
RectF rect = new RectF();
rect.set(x, y, x + 80, y + 50);
rects.add(rect);
}
public void addArrow() {
//arrow head
Point a = new Point(0, 0);
Point b = new Point(0, 25);
Point c = new Point(21, 12);
Path path = new Path();
path.lineTo(b.x, b.y);
path.lineTo(c.x, c.y);
path.lineTo(a.x, a.y);
path.close();
paths.add(path);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
for (RectF rec : rects) {
canvas.drawRect(rec, paintColor);
}
}
public boolean onTouchEvent(MotionEvent event) {
x = event.getX();
y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
for (int i = 0; i < rects.size(); i++) {
// Equation Editor
if (rects.get(i).contains(x, y)) {
}
}
}