我想知道如何在RelativeLayout中“随机”放置一组按钮?
是否可以在整个视图周围分隔按钮?
感谢您的帮助!我尝试使用setX()和setY(),但它们是浮点数,我不确定它们如何将按钮与屏幕大小成比例。
答案 0 :(得分:3)
您可以为按钮添加布局边距。由于边距的解释不是相对于彼此而是相对于框架,因此它实际上会定位按钮。
要设置边距,您必须设置视图的布局参数:
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();
答案 1 :(得分:0)
而是做这样的事情首先创建一个按钮数组并找到相应的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);
}
希望它适用于您的