以编程方式将 imageview 的高度设置为 matchparent
Posted
技术标签:
【中文标题】以编程方式将 imageview 的高度设置为 matchparent【英文标题】:set height of imageview as matchparent programmatically 【发布时间】:2012-05-05 20:03:33 【问题描述】:我需要以编程方式将 imageview 的高度设置为 matchparent。如果它是固定高度,我知道如何设置。
但是我怎样才能将它设置为 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 中的内容大小?