Android中如何在代码中动态设置控件的高度以及宽度

有的时候我们为了让app的界面看起来更美观合理,会比较严格的规定一些控件的宽度以及高度。以一张大图为例,比如我们希望这张大图的宽度与手机屏幕的宽度相同,而希望它的宽度:高度=2:1(也可以是1.9:1),这样就不能简单的在xml文件中进行设置,就需要在代码中进行动态修改。

1.首先,因为每个手机的屏幕大小不同,所以先通过代码获得当前手机的长宽(单位都是像素)。

一般会在onCreate()中进行实现下面的代码。

DisplayMetrics dm = getResources().getDisplayMetrics();
width = dm.widthPixels;
height = dm.heightPixels;
2.拿到手机当前的宽高之后,以一个ImageView为例,代码实现如下:

imageView=(ImageView)findViewById(R.id.imageView);//获取当前控件的对象
LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) imageView.getLayoutParams();
//获取当前控件的布局对象
params.height=width/2;//设置当前控件布局的高度
imageView.setLayoutParams(params);//将设置好的布局参数应用到控件中
设置完毕之后,图片的宽度与高度的比就精确限制在了2:1了。其中LinearLayout.LayoutParams中的LinearLayout的类型设置是根据具体控件来决定的。ImageView可以看做是LinearLayout的一个子视图。这个地方不一定是LinearLayout,可以根据不同的子视图确定不同的父布局,具体情况具体分析。


  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值