Dea*_*ime 71 layout android imageview
我想设置LayoutParams
一个,ImageView
但似乎无法找到正确的方法来做到这一点.
我只能在API中找到各种文档ViewGroups
,但不是ImageView
.但ImageView
似乎有这个功能.
这段代码不起作用......
myImageView.setLayoutParams(new ImageView.LayoutParams(30,30));
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
Ste*_*ley 164
您需要设置ImageView所在的ViewGroup的LayoutParams.例如,如果您的ImageView在LinearLayout中,那么您创建一个
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
yourImageView.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)
这是因为它是View的父级需要知道要分配给View的大小.
小智 18
旧线程,但我现在有同样的问题.如果有人遇到这个,他可能会找到这个答案:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
yourImageView.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)
仅当您将ImageView作为子视图添加到LinearLayout时,此方法才有效.如果将其添加到RelativeLayout,则需要调用:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(30, 30);
yourImageView.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)
Kar*_*ing 11
如果您要更改现有ImageView的布局,您应该能够简单地获取当前的LayoutParams,更改宽度/高度并将其设置回:
android.view.ViewGroup.LayoutParams layoutParams = myImageView.getLayoutParams();
layoutParams.width = 30;
layoutParams.height = 30;
myImageView.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)
我不知道这是不是你的目标,但如果是,这可能是最简单的解决方案.
ImageView从View获取setLayoutParams,它使用ViewGroup.LayoutParams.如果你使用它,它会在大多数情况下崩溃,所以你应该使用View.class中的getLayoutParams().这将继承ImageView的父视图,并将始终有效.您可以在此处确认:ImageView扩展视图
假设您将ImageView定义为' image_view ',并将width/height int定义为'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);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
141961 次 |
最近记录: |