今天,简单讲讲android如何动态设置控件的宽高。

这个其实也比较简单,但是之前做的时候出现了问题,代码里设置的宽高是dx,需要先转成dp.下面以RelativeLayout作为例子,简单记录一下。

动态修改RelativeLayout的宽高,这样的代码,比较简单,就是修改Relativelayout的LayoutParams就可以.代码一般如下:

RelativeLayout ss = (RelativeLayout) findViewById(R.id.myRelativeLayout);
ss.setLayoutParams(new RelativeLayout.LayoutParams(width, height));

这种修改,在大多数情况下,没有问题,而且很好用,可是我遇到的问题是这样,就是我要修改的RelativeLayout,整个布局的中间的一个部分.

这里我要修改的是中间绿色的 生活这个框,如果我们用上面的方法,你就会发现RelativeLayout的高度确实被改了,可是他却改变了整体布局,把最上面一行工具栏给整没了.如下

这个可不是我们要的啊.这个怎么改呢.其实,你仔细看一下代码,就能明白了,上面的方法,他new了一个LayoutParams,问题就在这里,正确的方法是,先获取---> 修改--->再设置

代码如下:

RelativeLayout.LayoutParams linearParams =  (RelativeLayout.LayoutParams)rela_addnote_notetype.getLayoutParams();linearParams.height = 44;rela_addnote_notetype.setLayoutParams(linearParams);

这回再试下,如图

这里是基本的设置控件宽高的代码,但是linearParams.height = 44; 的44是dx,在手机上是不能适配的,所以需要先转成dp,至于dp和dx的转换,我写过一个博客,大家也可以去网上自己查找资料。这里还是提一下。

1. 获取你要进行改变的控件的布局

LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) myView.getLayoutParams();

2.设置布局的高度   后面的参数就是对应xml中的  42dp  可以根据需要进行改变

linearParams.height=((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMetrics()));

3.最后设置下控件的布局就可以了

myView.setLayoutParams(linearParams);

android 动态修改控件的宽高就讲完了。

就这么简单。



android 动态修改控件的宽高相关推荐

  1. Android获取UI控件的宽高

    一.概述 我们如果开发一些依赖于UI控件宽高的功能,那么自然会想到调用View的getHeigth()和getWidth()方法,对于新手来说,这里有一个坑,你在Activity中的onCreate( ...

  2. Android动态设置控件宽高和padding

    在开发过程中我们经常需要动态设置控件的宽高和padding.以TextView为例.如下: 布局代码 TextView的默认宽高为包裹文字,添加了一个背景颜色设置参数后更直观看到效果 <?xml ...

  3. android 动态让控件超出屏幕_android 动态设置屏幕控件宽高度

    获取屏幕宽高度: WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); Displ ...

  4. android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值

    http://www.aichengxu.com/Java/73893.htm Android动态设置控件大小以及设定margin以及padding值,有需要的朋友可以参考下. 一.概述 在andro ...

  5. 安卓代码中获取dp值为控件设置宽高,获取dimen值

    引言: 今天遇到一个问题,在自定义控件的时候,要求在代码中设置控件的宽高.本来自以为:对嘛,很简单,就是直接设置params //这样直接初始化的时候设置LayoutParams iconparams ...

  6. Android中测量控件的宽和高

    前言:在Android开发中,有时候我们需要测量控件的宽和高,而直接调用getHeight(),getWidth(),getMeasureHeight(),getMeasureWidth()方法, 得 ...

  7. 【Android】获取控件的宽和高

    有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式: 1. onWindowFocusChanged @Overridepublic void onWin ...

  8. Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)

    Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...

  9. 如何动态设置控件的宽高度?

    2019独角兽企业重金招聘Python工程师标准>>> 如何动态地控制控件的宽高度呢?如下面的例子所示: llShowCheckBtn = (LinearLayout) findVi ...

最新文章

  1. Android--百度地图密钥申请+环境配置(一)
  2. 记录遇到的Altium designer显示布线未完成坑
  3. Cisco交换机的经典配置(1)
  4. YOLOv5训练量化压缩
  5. java中的构造方法,this、super的用法
  6. C++性能优化-字符串的优化
  7. win mysql 2003错误_windows MySql 报1067错误 2003错误
  8. TypeError: ‘NoneType‘ object is not callable--python报错解决办法
  9. oracle 10g db_file,oracle 10g的db_file_multiblock_read_count参数
  10. Emlog文章海报插件
  11. ECCV2018 论文简析 Oral_1
  12. Windows+Chrome OS双系统安装方法
  13. java 定义全局变量_都说变量有七八种,到底谁是 Java 的亲儿子
  14. 51nod1712 区间求和
  15. 梦笔记2022-02-28
  16. java考试系统_Java在线考试系统(含源码)
  17. 输入九九乘法表c语言,九九乘法表的输入(c语言)
  18. 操作系统:进程同步与互斥之生产者-消费者问题(含报告和源码)
  19. 萨缪尔·莫尔斯:电报之父的传奇人生
  20. 智慧地产-售楼中心 3D 沙盘可视化

热门文章

  1. 出现could not find developer disk image解决办法和不受信任的开发者
  2. 循环语句练习题2(打印三角形和菱形)
  3. 谓词NSPredicate的使用
  4. UIImage指定区域自由拉伸
  5. [转]Google的C++代码规范
  6. 简单的使用Seajs
  7. 在子线程中创建新的窗体,遇到的问题。
  8. HDU 1010题解这是一道简单的DFS加回溯题,看懂后就会对递归和回溯有较深刻的理解。...
  9. C#数据结构(一)----线性表
  10. 世界首份博客报纸问世