activity 中获取控件的宽高

Posted 贺长寿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activity 中获取控件的宽高相关的知识,希望对你有一定的参考价值。

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;  
            }  
        });  
  

 

以上是关于activity 中获取控件的宽高的主要内容,如果未能解决你的问题,请参考以下文章

uwp - 获取控件的宽高

背景图片拉伸,计算屏幕宽度和获取控件宽高

flutter获取屏幕宽高和某个控件 的宽高

js 获取file控件 选中图片的宽高

js 获取file控件 选中图片的宽高

获取元素的宽高和位置(转自脚本之家)