你如何setLayoutParams()的ImageView?

我想设置一个ImageViewLayoutParams ,但似乎找不到正确的方法来做到这一点。

我只能在各种ViewGroups的API中find文档,而不是ImageView 。 然而ImageView似乎有这个function。

此代码不起作用…

 myImageView.setLayoutParams(new ImageView.LayoutParams(30,30)); 

我该怎么做?

您需要设置ImageView所在的ViewGroup的LayoutParams。例如,如果您的ImageView位于LinearLayout中,那么您将创build一个

 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30); yourImageView.setLayoutParams(layoutParams); 

这是因为它是视图的父级,需要知道分配给视图的大小。

老线程,但我现在有同样的问题。 如果有人遇到这个,他可能会find这个答案:

 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30); yourImageView.setLayoutParams(layoutParams); 

这只有在将ImageView作为子视图添加到LinearLayout时才有效。 如果你把它添加到RelativeLayout中,你将需要调用:

 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(30, 30); yourImageView.setLayoutParams(layoutParams); 

ImageView从使用ViewGroup.LayoutParams的View中获取setLayoutParams。 如果使用它,在大多数情况下会崩溃,所以您应该使用View.class中的getLayoutParams()。 这将inheritanceImageView的父视图,并将始终工作。 你可以在这里确认: ImageView扩展视图

假设您将ImageView定义为“ image_view ”,将width / height定义为“thumb_size”

最好的方法是

 ViewGroup.LayoutParams iv_params_b = image_view.getLayoutParams(); iv_params_b.height = thumb_size; iv_params_b.width = thumb_size; image_view.setLayoutParams(iv_params_b); 

如果您正在更改现有ImageView的布局,您应该可以简单地获取当前的LayoutParams,更改宽度/高度并将其设置回来:

 android.view.ViewGroup.LayoutParams layoutParams = myImageView.getLayoutParams(); layoutParams.width = 30; layoutParams.height = 30; myImageView.setLayoutParams(layoutParams); 

我不知道这是否是你的目标,但如果是这样,这可能是最简单的解决scheme。