Android开发,如何获得近似坐标?

时间:2012-03-10 10:25:44

标签: android click coordinates approximate

好的,所以我在surfaceView上制作了一个简单的应用程序,其中我有一个从屏幕顶部到底部的球的位图。一旦它到达底部,它再次出现在顶部,它再次开始回落。

接下来我试着这样做,这样当我在球落下时点击球时,它会回到屏幕的顶部。但是,我遇到了这个问题,因为我无法点击它(因为它只有一个像素,我认为)。我将onTouchListener设置为点击的getX()getY()坐标,如果点击的x和y坐标等于球的当前位置的x和y,则球返回到屏幕的顶部。

但这不起作用。因为为了让我能够点击球,我必须点击当时球所在的确切中心像素。所以我的问题是如何说:如果点击接近,或大约等于球的当前位置,则返回顶部。我是一个菜鸟,如果我问愚蠢的问题,我道歉,我正在努力学习。非常感谢你的帮助。我很感激。

1 个答案:

答案 0 :(得分:3)

它应该适合你。只需覆盖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;
    }