6

我在两个或多个矩形对象之间绘制箭头时遇到问题。我有一个存储几个矩形的数组列表。

例如,用户在画布上有两个矩形。单击绘制箭头按钮后,用户将能够单击第一个矩形并拖动到第二个矩形,箭头将在两个矩形之间形成。

我不知道如何获取触摸坐标以绘制箭头。我能够获取当前的 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)) {

                            }
                        }
                 }
4

0 回答 0