设置 ImageButton 尺寸的其他方法

Other way to set a dimension of ImageButton

我在 Android 工作室使用 ImageButton,在代码开发期间我需要更改 ImageButton 的尺寸。

我在上一个问题中找到了部分解决方案。

whosebug.com/questions/10992241/set-imagebutton-height-and-width-in-code

android.view.ViewGroup.LayoutParams params1 = button1.getLayoutParams();
    params1.height = size;
    params1.width = size;
    button1.setLayoutParams(params1);
android.view.ViewGroup.LayoutParams params2 = button2.getLayoutParams();
    params2.height = size;
    params2.width = size;
    button2.setLayoutParams(params2);
android.view.ViewGroup.LayoutParams params3 = button3.getLayoutParams();
    params3.height = size;
    params3.width = size;
    button3.setLayoutParams(params3);

是否有其他方法可以管理 ImageButtons 而无需为所有重复以下代码?

android.view.ViewGroup.LayoutParams params1 = button1.getLayoutParams();
    params1.height = size;
    params1.width = size;

您可以按顺序命名布局中的按钮(您可以根据需要根据屏幕名称、操作名称更改它们)

赞:button_1button_2button_3

您可以通过这种方式获得此类按钮的列表:

List<ImageButton> toBeResizedButtons() {

    ArrayList<ImageButton> buttons = new ArrayList<>();

    for (int i = 1; i <= NUMBER_OF_BUTTONS ; i++) {
        int id = getResources().getIdentifier("button_" + i, "id", getPackageName());
        buttons.add((ImageButton) findViewById(id));
    }

    return buttons;
}

您可以像这样在一个语句中调整所有这些的大小

for(ImageButton b : toBeResizedButtons()) {

     resize(b, size);
}

其中 resize() 假定您有一个固定大小来调整它们的大小。

void resize(View v, int size) {

    android.view.ViewGroup.LayoutParams params = v.getLayoutParams();
    params.height = size;
    params.width = size;
}