【问题标题】:GridLayout get buttons to fit areaGridLayout 获取适合区域的按钮
【发布时间】:2016-01-20 03:26:51
【问题描述】:

我正在为安卓设计游戏。代码已经可以工作了,但是我在 UI 方面遇到了一些问题。所有的 Layout 类型都令人困惑,似乎从来没有有用地定义它们的属性。本质上,我希望以编程方式添加的按钮干净地填充屏幕底部的整个空间。可能有 2 到 6 个按钮,具体取决于玩家选择的难度设置。但最终,我什至会满足于在这里均匀适合所有 6 个按钮的布局。我不完全确定为什么这没有填写 .xml 设计器指示的整个区域。我已尝试在下面提供相关部分,但很高兴根据要求添加其他详细信息。

这是网格布局的初始 XML

  <GridLayout
        android:layout_width="match_parent"
        android:layout_height="182dp"
        android:rowCount="2"
        android:columnCount="3"
        android:id="@+id/buttonsLayout"
        android:layout_gravity="center"></GridLayout>

并在此处设置按钮:

private static void setButtons() {
    for (int i = 0; i < GlobalValues.numberOfColors; i++) {
        Button b = new Button(mainActivity);
        ImageView IV = new ImageView(mainActivity);
        switch (i) {
            case 0:
                IV.setImageResource(R.drawable.red);
                b.setId(i);
                break;
            case 1:
                IV.setImageResource(R.drawable.green);
                b.setId(i);
                break;
            case 2:
                IV.setImageResource(R.drawable.blue);
                b.setId(i);
                break;
            case 3:
                IV.setImageResource(R.drawable.yellow);
                b.setId(i);
                break;
            case 4:
                IV.setImageResource(R.drawable.purple);
                b.setId(i);
                break;
            case 5:
                IV.setImageResource(R.drawable.cyan);
                b.setId(i);
                break;
            default:
                break;
        }
        b.setBackgroundDrawable(IV.getDrawable());
        b.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                UI.UpdateColor(view);
            }
        });

        buttonsLayout.addView(b);
    }
}

最后,这是它目前的样子。它显然没有很好地利用整个区域,我不知道为什么。

【问题讨论】:

  • 你知道android中有一个ImageButton吗?为什么需要按钮和图像视图?
  • @Gavriel TBH 我没有。可以肯定的是,这将为我节省一些代码行!
  • 你可能会想到的另一件事:stackoverflow.com/questions/12601433/… 我知道这不完全是你的情况,但你说现在解决 6 个按钮就足够了,所以这可能有效。顺便说一句,如果我是你,我会有不同的布局,具体取决于按钮的数量,以使它们变得更好。但从 6 开始是这样的
  • @Gavriel 一个快速而肮脏的编辑将我带到了这个imgur.com/2UuXeAX 在此之前我没有使用过任何 GUI 东西,所以对我来说这都是希腊语。
  • @Gavriel 没关系,我认为你链接到我的东西足以让这个工作正常进行。发表您的评论作为答案,以便我将其选为已回答。

标签: android android-gridlayout


【解决方案1】:

Align Buttons in GridLayout 可能会对您有所帮助。我知道这不完全是你的情况,但你说现在它足以解决 6 个按钮,所以这可能有效。顺便说一句,如果我是你,我会有不同的布局,具体取决于按钮的数量,以使它们变得更好。但是从 6 开始是正确的。

【讨论】:

    猜你喜欢
    • 2014-04-30
    • 2022-07-08
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多