Android:以编程方式设置视图的最小高度

Lal*_*han 13 android android-layout

我试图以编程方式为imageview设置最小高度,但到目前为止还没有运气.我的代码如下

    int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 160, getResources().getDisplayMetrics());
    int minHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, getResources().getDisplayMetrics());

    LayoutParams params = new LayoutParams(width,LayoutParams.MATCH_PARENT);

    SmartImageView siv = new SmartImageView(getActivity());
    siv.setMinimumHeight(minHeight);
    siv.setLayoutParams(sivParams);
    siv.setAdjustViewBounds(true);
    siv.setScaleType(ScaleType.FIT_XY);
    siv.setImageUrl(url);
    ll.addView(siv);
Run Code Online (Sandbox Code Playgroud)

我还尝试将setMinimumWidth方法放在setLayoutParams方法之后,但这也没有用.请帮忙

谢谢

Ash*_*ani 15

试试这个--->

siv.getLayoutParams().height = minHeight;
Run Code Online (Sandbox Code Playgroud)

或者你也可以尝试--->

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width , minHeight);
siv.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)

  • 这设置高度或宽度而不是最小宽度或高度 (11认同)

Fut*_*eJJ 9

正如@Gustavo Baiocchi Costa在评论中指出的那样,@ Ashok Damani的回答是不正确的:

这将设置高度或宽度而不是最小宽度或高度

Android中设置视图最小高度的正确方法

属性访问方式(在Kotlin 中):

yourView.minimumHeight = minHeight
Run Code Online (Sandbox Code Playgroud)

Setter方法方式:

yourView.setMinimumHeight(minHeight);
Run Code Online (Sandbox Code Playgroud)

安卓文档说:

设置视图的最小高度。不能保证视图能够达到这个最小高度(例如,如果它的父布局限制它具有较少的可用高度)。