【问题标题】:Android: How do I randomly place an array of buttons in an activity?Android:如何在活动中随机放置一组按钮?
【发布时间】:2013-04-20 05:26:02
【问题描述】:

我想知道如何在 RelativeLayout 中“随机”放置一组 Button?

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

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

【问题讨论】:

  • 你尝试过什么?向我们展示一些对我们更有帮助的代码。

标签: android arrays button random


【解决方案1】:

您可以为按钮添加布局边距。由于边距不会被解释为相对于彼此而是相对于框架,它实际上会定位您的按钮。

要设置边距,您必须设置视图的布局参数:

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);

但是,这可能会导致您的按钮重叠或位于 Activity 之外,因此最好不要使用完全随机的位置值,而是执行重叠检查并根据设备分辨率和按钮大小设置随机范围。

获取设备显示尺寸:

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

【讨论】:

  • 有没有办法可以访问当前正在使用的设备的尺寸?
  • 我希望你找到了你的解决方案,为了将来参考我扩展了我的答案。
【解决方案2】:

改为先创建一个按钮数组并找到相应的 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);
}

希望对你有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    相关资源
    最近更新 更多