Android:我如何在活动中随机放置一组按钮?

问题描述:

我想知道如何“随机”将一个按钮数组放置在RelativeLayout中?Android:我如何在活动中随机放置一组按钮?

是否可以在整个视图周围放置按钮?

感谢您的帮助!我尝试过使用setX()和setY(),但它们是浮点数,我不确定它们如何按照屏幕大小的比例放置按钮。

+2

你试过了什么?向我们展示一些对我们更有帮助的代码。 – 2013-04-20 05:28:26

您可以将布局边距添加到您的按钮。由于边距不是相对于彼此而是相对于框架而言,它实际上将定位您的按钮。

要设置你必须设置视图的布局PARAMS边距:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
Random random = new Random(); 
params.leftMargin = random.nextInt(100); 
params.topMargin = random.nextInt(100); 
button.setLayoutParams(params); 

然而,这可能会导致你的按钮重叠,或者是活动之外,所以最好不要使用位置完全是随机的值但要根据设备分辨率和按钮大小执行重叠检查和设置随机范围。

要获得设备显示器尺寸:

Display display= activity.getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int Height = display.getHeight(); 
+0

有没有一种方法可以访问当前正在使用的设备的尺寸? – 2013-04-20 06:02:37

+0

我希望你找到你的解决方案,以供将来参考我扩展我的答案。 – 2013-05-02 09:06:30

,而不是做这样的事情首先创建一个按钮阵列,并找到相应的ID ...

LayoutParams lp = new LinearLayout.LayoutParams(widthOfButtons,LayoutParams.WRAP_CONTENT); 
Button[] buttons; 
for(int i=0; i<4; i++) { //suppose you have four buttons 
{ 
String buttonID = "button" + (i+1); 
int resID = getResources().getIdentifier(buttonID, "id", getPackageName()); 
buttons[i] = ((Button) findViewById(resID)); 
buttons[i].setHeight(yourvalue); 
buttons[i].setWidth(yourvalue); 
buttons[i].setLayoutParams(lp); 
} 

希望工程为您