以编程方式将 imageview 的高度设置为 matchparent

Posted

技术标签:

【中文标题】以编程方式将 imageview 的高度设置为 matchparent【英文标题】:set height of imageview as matchparent programmatically 【发布时间】:2012-05-05 20:03:33 【问题描述】:

我需要以编程方式将 imageview 的高度设置为 ma​​tchparent。如果它是固定高度,我知道如何设置。

但是我怎样才能将它设置为 matchparent?

编辑:

实际上父布局的高度是动态的,所以我需要将imageview的高度作为父布局的高度。

【问题讨论】:

我已经尝试了答案中提到的所有方法。但它没有将高度设置为匹配父项:( 您应该查看您接受的答案 【参考方案1】:
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

【讨论】:

在 LayoutParams 中按下 Alt+Enter 的那一刻,我看到了很多类。你能告诉我用哪一个吗? 什么是父视图? 您应该使用要设置 LayoutParams 的视图类,即使用 LinearLayout.LayoutParams 将婴儿车设置为您的 LL :) 如果您希望高度基于原始图像的尺寸是动态的,但希望宽度为 MATCH_PARENT,该怎么办? 导入android.view.ViewGroup【参考方案2】:
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

【讨论】:

如果您是第一次设置参数,因为您以编程方式制作了图像视图,这将导致空指针错误(或与文本视图有关)并且应该在其他任何地方。【参考方案3】:
imageView.setLayoutParams
    (new ViewGroup.MarginLayoutParams
        (width, ViewGroup.LayoutParams.MATCH_PARENT));

布局参数的类型取决于父视图组。如果放错了会导致异常。

【讨论】:

什么是“宽度”?【参考方案4】:

对于 Kotlin 用户

val params = mImageView?.layoutParams as FrameLayout.LayoutParams
params.width = FrameLayout.LayoutParams.MATCH_PARENT
params.height = FrameLayout.LayoutParams.MATCH_PARENT
mImageView?.layoutParams = params

这里我使用了FrameLayout.LayoutParams,因为我的观点(ImageView)父母是FrameLayout

【讨论】:

【参考方案5】:

我有同样的问题。通过首先设置解决:

imageView.setMinHeight(0);
imageView.setMinimumHeight(0);

然后:

imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

setMinHeight 由 ImageView 定义,而 setMinimumHeight 由 View 定义。根据文档,使用两个值中较大的一个,因此必须同时设置。

【讨论】:

【参考方案6】:

如果你想匹配父母,你可以试试这个。尺寸排列是按宽高顺序排列

web = new WebView(this);
        web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

【讨论】:

【参考方案7】:

您可以使用 MATCH_PARENT 常量或其数值 -1。

【讨论】:

MATCH_PARENT 未在上下文中定义。你必须说'LayoutParams.MATCH_PARENT'【参考方案8】:

启动 LayoutParams 。

分配父级的宽度和高度并传递给imageview的setLayoutParams方法

【讨论】:

你永远不应该传递父母的实际尺寸。始终使用 MATCH_PARENT 而不是实际值。一般来说,我不建议使用绝对尺寸,因为它在所有屏幕上看起来可能完全不同。我更喜欢使用权重。 老实说这应该是一条评论

以上是关于以编程方式将 imageview 的高度设置为 matchparent的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将 VectorDrawable 设置为 ImageView 的图像

如何使用相机设置捕获的图像以适合固定高度和宽度的 Imageview

以编程方式更改约束布局中的高度?

我将如何(以编程方式)将 UITextView 的高度设置为其在 Swift 中的内容大小?

ConstraintLayout:如何以编程方式将屏幕划分为屏幕高度的两个相等部分

如何在 ios 4 中以编程方式将图像数组添加到 Imageview?