android 动态修改控件的宽高
今天,简单讲讲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 动态修改控件的宽高相关推荐
- Android获取UI控件的宽高
一.概述 我们如果开发一些依赖于UI控件宽高的功能,那么自然会想到调用View的getHeigth()和getWidth()方法,对于新手来说,这里有一个坑,你在Activity中的onCreate( ...
- Android动态设置控件宽高和padding
在开发过程中我们经常需要动态设置控件的宽高和padding.以TextView为例.如下: 布局代码 TextView的默认宽高为包裹文字,添加了一个背景颜色设置参数后更直观看到效果 <?xml ...
- android 动态让控件超出屏幕_android 动态设置屏幕控件宽高度
获取屏幕宽高度: WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); Displ ...
- android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值
http://www.aichengxu.com/Java/73893.htm Android动态设置控件大小以及设定margin以及padding值,有需要的朋友可以参考下. 一.概述 在andro ...
- 安卓代码中获取dp值为控件设置宽高,获取dimen值
引言: 今天遇到一个问题,在自定义控件的时候,要求在代码中设置控件的宽高.本来自以为:对嘛,很简单,就是直接设置params //这样直接初始化的时候设置LayoutParams iconparams ...
- Android中测量控件的宽和高
前言:在Android开发中,有时候我们需要测量控件的宽和高,而直接调用getHeight(),getWidth(),getMeasureHeight(),getMeasureWidth()方法, 得 ...
- 【Android】获取控件的宽和高
有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式: 1. onWindowFocusChanged @Overridepublic void onWin ...
- Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)
Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...
- 如何动态设置控件的宽高度?
2019独角兽企业重金招聘Python工程师标准>>> 如何动态地控制控件的宽高度呢?如下面的例子所示: llShowCheckBtn = (LinearLayout) findVi ...
最新文章
- Android--百度地图密钥申请+环境配置(一)
- 记录遇到的Altium designer显示布线未完成坑
- Cisco交换机的经典配置(1)
- YOLOv5训练量化压缩
- java中的构造方法,this、super的用法
- C++性能优化-字符串的优化
- win mysql 2003错误_windows MySql 报1067错误 2003错误
- TypeError: ‘NoneType‘ object is not callable--python报错解决办法
- oracle 10g db_file,oracle 10g的db_file_multiblock_read_count参数
- Emlog文章海报插件
- ECCV2018 论文简析 Oral_1
- Windows+Chrome OS双系统安装方法
- java 定义全局变量_都说变量有七八种,到底谁是 Java 的亲儿子
- 51nod1712 区间求和
- 梦笔记2022-02-28
- java考试系统_Java在线考试系统(含源码)
- 输入九九乘法表c语言,九九乘法表的输入(c语言)
- 操作系统:进程同步与互斥之生产者-消费者问题(含报告和源码)
- 萨缪尔·莫尔斯:电报之父的传奇人生
- 智慧地产-售楼中心 3D 沙盘可视化