随机按钮有时会相互重叠

Randomized button sometimes overlap each other

在我的其中一个按钮的 OnClick 方法中,我随机化了它在屏幕上的位置... 它工作完美,但是当我使用 2 或 3 个按钮来随机化它们的位置时,它们有时会相互重叠,例如一个按钮与另一个按钮半重叠...

这里是按钮随机位置的方法 -

private void moveButton()
    {
        if(!canMove){ return; }

        runOnUiThread(
                new Runnable()
                {
                    @Override
                    public void run()
                    {

                        Display display = getWindowManager().getDefaultDisplay();
                        Point size = new Point();
                        display.getSize(size);
                        int width = size.x;
                        int height = size.y;

                        Button button = (Button)findViewById(R.id.button);
                        Random r = new Random();

                        int startX = width/2;
                        int startY = height/2;

                        if(myscores==0){
                            button.setX(startX);
                            button.setY(startY);
                        }

                        else {

                            int x = r.nextInt(width - 210);
                            int y = r.nextInt(height - 200);

                            button.setX(x);
                            button.setY(y);
                        }
                    }
                }
        );

    }

任何帮助将不胜感激:)

您需要检查按钮是否与另一个按钮重叠,如果重叠则再次移动:

int x = r.nextInt(width - 210);
int y = r.nextInt(height - 200);

if (x < other.getX() + other.getWidth()
     && x + button.getWidth() > other.getX()
     && y < other.getY() + other.getHeight()
     && y + button.getHeight() > other.getY()) {

   moveButton();
   return;
}

button.setX(x);
button.setY(y);