Разработка Android, как получить приблизительные координаты? - PullRequest
1 голос
/ 10 марта 2012

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

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

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

1 Ответ

3 голосов
/ 10 марта 2012

Это должно работать для вас.Просто переопределите метод 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...