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

and*_*irl 72 height android imageview

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

但我怎么能把它设置为matchparent?

编辑:

实际上父布局的高度是动态的.所以我需要将imageview的高度设为父级的高度.

C. *_*ung 222

imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
Run Code Online (Sandbox Code Playgroud)

  • 我在LayoutParams中按Alt + Enter的那一刻,我看到了很多类.你能告诉我哪一个用吗? (8认同)
  • 你应该使用你想要设置LayoutParams的视图类,即使用LinearLayout.LayoutParams将prams设置为你的LL :) (2认同)

Luk*_*son 49

imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;
Run Code Online (Sandbox Code Playgroud)

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

xan*_*ndy 15

imageView.setLayoutParams
    (new ViewGroup.MarginLayoutParams
        (width, ViewGroup.LayoutParams.MATCH_PARENT));
Run Code Online (Sandbox Code Playgroud)

布局参数的类型取决于父视图组.如果你选错了它会导致异常.


Muh*_*s M 12

对于 Kotlin 用户

val params = mImageView?.layoutParams as FrameLayout.LayoutParams
params.width = FrameLayout.LayoutParams.MATCH_PARENT
params.height = FrameLayout.LayoutParams.MATCH_PARENT
mImageView?.layoutParams = params
Run Code Online (Sandbox Code Playgroud)

在这里我使用,FrameLayout.LayoutParams因为我的 views( ImageView) 父母是FrameLayout


fis*_*sio 5

I had same issue. Resolved by firstly setting :

imageView.setMinHeight(0);
imageView.setMinimumHeight(0);
Run Code Online (Sandbox Code Playgroud)

And then :

imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;
Run Code Online (Sandbox Code Playgroud)

setMinHeight is defined by ImageView, while setMinimumHeight is defined by View. According to the docs, the greater of the two values is used, so both must be set.


luc*_*uke -19

启动 LayoutParams 。

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

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