1

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

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

这虽然行不​​通。因为为了让我能够点击球,我必须点击当时球所在的确切中心像素。所以我的问题是我该怎么说:如果点击接近或大约等于球的当前位置,那么回到顶部。我是一个菜鸟,所以如果我问愚蠢的问题,我道歉,我正在努力学习。非常感谢您的帮助。我很感激。

4

1 回答 1

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;
    }
于 2012-03-10T11:06:14.690 回答