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


83

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

但是我如何将其设置为matchparent?

编辑:

父布局的高度实际上是dynamic.so,因此我需要将imageview的高度作为父视图的高度。


2
我已经尝试了所有answer ..提及的方法,但未将高度设置为匹配父对象:(
andro-girl 2012年

1
您应该查看接受的答案
CularBytes

Answers:


-20

启动LayoutParams。

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


3
您绝对不能通过父母的实际尺寸。始终使用MATCH_PARENT而不是实际值。通常,我不建议使用绝对尺寸,因为在所有屏幕上看起来都可能完全不同。我更喜欢使用砝码。
Daniel Bo

12
老实说,这应该是一条评论
Neon Warge '17

255
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

12
在LayoutParams中按Alt + Enter的那一刻,我看到了很多类。您能告诉我使用哪一个吗?
Uday

父视图是什么?
C. Leung,

4
您应该使用要设置LayoutParams的视图类,即使用LinearLayout.LayoutParams来将ram设置为您的LL :)
安德鲁(Andrew)

如果您希望高度基于原始图像的尺寸是动态的,但希望宽度为MATCH_PARENT,该怎么办?
泰勒,

import android.view.ViewGroup
艾伦·尼尔森

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

7
如果您是因为以编程方式制作了imageview而第一次设置参数,则这将使指针错误(或使用文本视图)为空,并且应该在其他任何地方使用。
5/14

15
imageView.setLayoutParams
    (new ViewGroup.MarginLayoutParams
        (width, ViewGroup.LayoutParams.MATCH_PARENT));

布局参数的类型取决于父视图组。如果输入错误,将导致异常。


1
什么是“宽度”?
FlorianB

9

对于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


4

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

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

然后 :

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

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


3

如果您想与父母配对,可以尝试一下。尺寸排列顺序是宽度和高度

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

1

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


1
未在上下文中定义MATCH_PARENT。您必须说“ LayoutParams.MATCH_PARENT”
Akshat Agarwal'Dec 1'15
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.