如何获取android中画布上绘制的圆的位置(x和y坐标)?

时间:2011-10-19 12:43:02

标签: android canvas position coordinates geometry

我对canvas安卓有两个疑问。

他们解释如下:

首先,我在画布上绘制了一排圆圈,我想捕捉圆形的x和y坐标(仅在一个圆圈上),这样我就可以在圆圈上绘制一个位图(在中心)。 / p>

其次,我想暗示在圈子上触摸事件,即我希望他们在有人触摸它们时改变颜色任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

表示#2:  计算点中心与触摸事件之间的距离 - 如果距离小于圆的半径 - 按下圆圈

答案 1 :(得分:0)

首先,您应该为“圈区”创建GridSector类。

public class GridSector {

    private int x = 0;
    private int y = 0;
    private Rect rect = new Rect(0, 0, 0, 0);

    public GridSector(int x, int y, Rect rect) {
        this.x = x;
        this.y = y;
        this.rect = rect;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public Rect getRect() {
        return rect;
    }

    public void setRect(Rect rect) {
        this.rect.set(rect.left, rect.top, rect.right, rect.bottom);
    }
}

然后创建您想要触摸的视图。

    public class GridSectorsView extends View {


        GridSector currentSelectedSector;
        @Override
            protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);
                drawCircle(canvas); // draw your circles;
            }

          @Override
            public boolean onTouchEvent(MotionEvent ev) {
                switch (ev.getAction()) {
                    case MotionEvent.ACTION_DOWN: {
                    invalidate(currentSelectedSector.getRect()); // update your circles (call  onDraw Function ) ;
               }
            }
}