你如何setLayoutParams()的ImageView?
我想设置一个ImageView
的LayoutParams
,但似乎找不到正确的方法来做到这一点。
我只能在各种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。