activity 中获取控件的宽高
2024-10-13 22:11:46
1.第一种方式:
TextView textview3 = findViewById(R.id.textview3);
textView3.post(new Runnable() {
@Override
public void run () {
int width = textView3.getWidth();
ViewGroup.LayoutParams layoutParams = button2.getLayoutParams();
layoutParams.width = width;
button2.setLayoutParams(layoutParams);
}
});
view的post方法,runnable对象中的方法会在View的measure、layout等事件后触发UI事件队列会按顺序处理事件。在setContentView()被调用后,事件队列中会包含一个要求重新layout的message,所以任何你post到队列中的东西都会在Layout发生变化后执行。
activity中先这行oncreate,然后才是第一次调用onmeasure,
2.第二种方式,同过treeobserve
firstTxt = (TextView) findViewById(R.id.hello_word_txt);
ViewTreeObserver viewTreeObserver = firstTxt.getViewTreeObserver();
viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
int height = firstTxt.getHeight();
int width = firstTxt.getWidth();
Log.v("获取TextView宽高", "宽度:" + width + ",高度:" + height);
return true;
}
});
最新文章
- java接口调用——webservice就是一个RPC而已
- PHP面向对象06_异常处理
- HTML5和css3的总结二
- Hibernate对象映射类型
- BeanUtils.copyProperties() 用法--部分转
- SpringMVC08转发和重定向
- log4j 将日志记录到数据库
- dedecms利用memberlist标签调用自定义会员模型的会员信息
- 【swift】ios中生成二维码
- php session序列化攻击面浅析
- Easyui 修改|新增jquery-easyui icon图标
- 【NOIP2013模拟】终极武器(经典分析+二分区间)
- centos 7安装mysql 执行./scripts/mysql_install_db --user=mysql 报错 FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper
- shell脚本--分支、条件判断
- Java方法、构造方法的重载;创建对象;调用方法
- BZOJ2178: 圆的面积并(格林公式)
- odoo 打印单
- Graph-BFS-Fly-图的广度优先遍历-最小转机问题
- BZOJ 2333 【SCOI2011】 棘手的操作
- C#入门笔记2 变量