Как получить положение (координаты X и Y) круга Drwan на холсте в Android? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть два сомнения в холсте Android.

Они объяснены ниже:

Во-первых, я нарисовал ряд кругов на холсте, я хочу захватить координаты x и y круга (только на одном круге), нарисованного так, чтобы я мог нарисовать растровое изображение над кругом (в центре).

Во-вторых, я хочу обозначить событие касания на круге, т. Е. Я хочу, чтобы они меняли цвет, когда кто-то их трогает. Кто-нибудь может мне помочь с этим?

Ответы [ 2 ]

1 голос
/ 19 октября 2011

для # 2: вычислите расстояние между центром вашей точки и событием касания - если расстояние меньше радиуса вашего круга - вы нажали на круг

0 голосов
/ 19 октября 2011

Сначала вы должны создать класс 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 ) ;
               }
            }
}
...