在 android 中在运行时更改 ImageButton 的宽度和高度

change the width & height of ImageButton at runtime in android

我已经使用此代码制作了一个 ImageButton,之后我想在 运行 时更改它的大小。下面写的两个代码,

 <ImageButton
    android:id="@+id/btn_new"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/untitled3"
    />

 public void scaler1() {
    Display display = getWindowManager().getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();
    btn_new.setMinimumWidth(width/4);
    btn_new.setMinimumHeight(height/6);
}

但是它不起作用,请给出任何解决方案。

这是我使用的实际代码

  public void scaler1() {
    Display display = getWindowManager().getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();

    edit_screen.setWidth(width);
    edit_screen.setHeight(height / 6);

    lpsame = (LayoutParams) btn_0.getLayoutParams();
    lpsame.width=width/4;
    lpsame.height=height/6;

    btn_0.setLayoutParams(lpsame);



    LayoutParams lpedit = (LayoutParams) edit_screen.getLayoutParams();
    lpedit.width=width;
    lpedit.height=height/6;

    LayoutParams lpequal = (LayoutParams) btn_0.getLayoutParams();
    lpequal.width=width/2;
    lpequal.height=height/6;

    edit_screen.setLayoutParams(lpedit);


    btn_2.setLayoutParams(lpsame);
    btn_3.setLayoutParams(lpsame);
    btn_4.setLayoutParams(lpsame);
    btn_5.setLayoutParams(lpsame);
    btn_6.setLayoutParams(lpsame);
    btn_7.setLayoutParams(lpsame);
    btn_8.setLayoutParams(lpsame);
    btn_9.setLayoutParams(lpsame);
    btn_add.setLayoutParams(lpsame);
    btn_subtrac.setLayoutParams(lpsame);
    btn_multiply.setLayoutParams(lpsame);
    btn_divide.setLayoutParams(lpsame);
    btn_dot.setLayoutParams(lpsame);
    btn_percentage.setLayoutParams(lpsame);
    btn_CA.setLayoutParams(lpsame);
    btn_back.setLayoutParams(lpsame);
    btn_equal.setLayoutParams(lpequal);

    editParams = new RelativeLayout.LayoutParams(width, height/6);
    sameparam= new RelativeLayout.LayoutParams(width/4,height/6);
    equalparam= new RelativeLayout.LayoutParams(width/2,height/6);

    edit_screen.setLayoutParams(editParams);
}

您可以使用 LayoutParams class

更改 View 的属性
LayoutParams lp = (LayoutParams) btn_new.getLayoutParams();
lp.width = yourWidth;
lp.height = yourHeight;

btn_new.setLayoutParams(lp);

更新

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(yourWidth, yourHeight);

yourButtons.setLayoutParams(layoutParams);

您必须先获取视图的实例,然后才能更改其属性

ImageButton btn_new = (ImageButton) findViewById(R.id.btn_new);

试试这个:

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

    LayoutParams layoutParams = image_new.getLayoutParams();
    layoutParams.width=width/4;
    layoutParams.height=height/6;

    image_new.setLayoutParams(layoutParams);