Android动态设置控件的大小
2020-04-24 本文已影响0人
因为我的心
一、前言:
在App开发中,我们经常要用到根据屏幕的宽高,设置控件的宽高,这样在手机端和平板端,不至于控件过小或者过大的情况,达到完美的适配。
支持父类是LinearLayout、RelativeLayout、ScrollView、RecyclerView等等,各种父类容器。
二、解决:
ImageView image = findViewById(R.id.image);
image.post(new Runnable() {
@Override
public void run() {
//自己获取屏幕的宽
int newWidth= ScreenUtils.getScreenWidth();
//获取自己控件的高度
int newHeight = image.getMeasuredHeight();
//取控件当前的布局参数
ViewGroup.LayoutParams params = image.getLayoutParams();
//设置宽度值
params.width = newWidth;
//设置高度值
params.height = newHeight;
//使设置好的布局参数应用到控件
image.setLayoutParams(params);
}
});
注意:
- 控件可以是ImageView、TextView、LinearLayout、RelativeLayout任何控件;
- 一定要在控件post方法的runnable中获取自己控件的高度,确保控件测量和布局完成;
- image.getLayoutParams();获取该控件的布局参数;
- image.setLayoutParams(params);设置布局参数即可;