设置视图的宽高

设置视图的宽高

方式一:在xml文件中通过属性设置

              宽:android:width

              高:android:height

属性取值有下面三种:

1.match_parent:与上级视图保持一致

2.wrap_content:与内容自适应,以文本视图为例,如果超过上级视图宽度就会换行,超过上级视图高度就会隐藏

3.以dp为单位的具体尺寸

方式二:在代码中设置视图的宽高

通过代码设置视图宽高的步骤:

首先确保xml文件中的宽高属性值为wrap_content,然后在java代码中依次执行以下三步

第一步:调用控件对象的getLayoutParams方法,获取该控件的布局参数。

第二步:布局参数的width属性表示宽度,height属性表示高度,修改这两个属性值。

              通过布局参数的width和height属性设置宽高时,单位默认为px,我们需要将dp转换为px再设置

              转换方法:              

     public static int dip2px(Context context, float dpValue) {
        float density = context.getResources().getDisplayMetrics().density;//获取当前设备1dp对应几个px
        return (int) (dpValue * density + 0.5f);
     }

 

第三步:调用控件对象的setLayoutParams方法,填入修改后的布局参数使之生效

整体代码如下:

     TextView tv_hello = findViewById(R.id.tv_hello);
     ViewGroup.LayoutParams layoutParams = tv_hello.getLayoutParams();
     //修改布局参数的宽度数值,默认单位是px,设置前需把dp转换为px
     layoutParams.width = Utils.dp2px(this, 300f);
     tv_hello.setLayoutParams(layoutParams);

 



posted @   六味地黄丸  阅读(126)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示