Разработка Android, как получить приблизительные координаты?

Итак, я делаю простое приложение для SurfaceView, где у меня есть растровое изображение шара, который идет от верхней части экрана к нижней. Как только он достигает дна, он снова появляется сверху, где снова начинает падать.

Затем я попытался сделать так, чтобы при нажатии на шарик, когда он падал, он возвращался к верхней части экрана. Однако у меня возникла проблема с этим, потому что я не могу щелкнуть по нему (потому что я думаю, что он всего один пиксель). Я установил onTouchListener на getX() а также getY() координаты щелчка, и если координаты x и y щелчка равны x и y текущей позиции мяча, то мяч возвращается в верхнюю часть экрана.

Это не работает, хотя. Потому что для того, чтобы я мог щелкнуть по мячу, мне нужно было щелкнуть точный центральный пиксель, на котором был шарик в то время. Итак, мой вопрос: как мне сказать: если щелчок близок или приблизительно равен текущей позиции мяча, вернитесь к вершине. Я новичок в этом, поэтому, если я задаю глупые вопросы, я прошу прощения, я стараюсь изо всех сил учиться. И большое спасибо за помощь. Я ценю его.

1 ответ

Решение

Это должно работать для вас. Просто переопределите метод onTouch.

@Override
    public boolean onTouch(View v, MotionEvent me)
    {
        try
        {
            Thread.sleep(50);
        } catch (InterruptedException e)
        {
            e.printStackTrace();
        }
        switch (me.getAction())
        {
        case MotionEvent.ACTION_DOWN:
            x = me.getX();
            y = me.getY();
            break;
        case MotionEvent.ACTION_UP:
            x = me.getX();
            y = me.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            x = me.getX();
            y = me.getY();
            break;
        case MotionEvent.ACTION_OUTSIDE:
            x = 100;
            y = 200;
            break;
        }
        return true;
    }
Другие вопросы по тегам