1

不确定这是否已得到答复。我尽我所能进行了 definitley 搜索,因为我觉得其他人会遇到这个问题。基本上,我使用 random 以及 setX 和 setY 来随机移动视图 onClick。这在我的设备上完美运行,我继续发布了该应用程序。虽然我的兄弟使用不同的设备并说只要他单击按钮,视图就会从屏幕上消失。

显然,我的猜测是 setX 和 setY 只是将它移出了屏幕。任何人都知道如何使视图仅在父布局内​​移动?我还需要保持我当前的随机方法,因为它是游戏不可或缺的。

这是我的按钮移动代码:

Random r = new Random();
int buttonHeight;
int buttonWidth;
buttonHeight = btnCount.getHeight();
buttonWidth = btnCount.getWidth();
int xLeft = r.nextInt(480 - buttonHeight);
int yUp = r.nextInt(800 - buttonHeight);
int xRight = r.nextInt(480 + buttonHeight);
int yDown = r.nextInt(800 + buttonHeight);

btnCount.setX(xLeft);
btnCount.setX(xRight);
btnCount.setX(yUp);
btnCount.setX(xDown);

有任何想法吗?

向后兼容性

我确实看到了很多关于这个的问题,但是如果你想在这里帮助 2 对 1 的问题,关于如何对 pre-API 11 执行上述相同方法的任何想法?如果不是这很酷,我可以在修复后查找其他问题和方法。

4

2 回答 2

0

我发现无论设备如何,都可以在当前布局上找到宽度和高度,然后将这些值除以 3,然后将值除以 3 并创建一个 int 变量,然后将其与 buttonHeight 和 buttonWidth 一起使用,效果很好将按钮保留在屏幕内的所有设备。我知道这可能不是一个理想的解决方案,但它是一个快速的解决方案。我仍然愿意接受其他建议。

谢谢!

于 2014-06-27T18:10:04.713 回答
-1

将主设备的高度和宽度保存在某处并进行简单的数学运算,例如:

maindeviceHeight - randomscaleheight
newDeviceHeight - ? 

你应该对宽度做同样的事情。

于 2019-04-22T14:40:03.780 回答