16

我正在尝试以编程方式设置图像视图的最小高度,但到目前为止没有运气。我的代码如下

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

我还尝试将 setMinimumWidth 方法放在 setLayoutParams 方法之后,但这也不起作用。请帮忙

谢谢

4

2 回答 2

16

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

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

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

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

yourView.minimumHeight = minHeight

Setter方法方式:

yourView.setMinimumHeight(minHeight);

Android 文档说:

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

于 2020-06-26T06:56:27.770 回答
14

试试这个--->

siv.getLayoutParams().height = minHeight;

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

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width , minHeight);
siv.setLayoutParams(layoutParams);
于 2013-05-28T11:30:56.073 回答