版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NianandShao/article/details/82077620
在OnCreate中无法通过View.getWdith或View.getHeight获取控件的宽高,可以使用getViewTreeObserver.addOnGloblaLayoutListener来获取宽高
addOnGloblaLayoutListener可能会被执行多次,需要获取宽高之后进行销毁
removeOnGlobalLayoutListener 销毁
btn.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Log.d(TAG, "Width : " + btn.getWidth() + " Height : " + btn.getHeight());
btn.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
在布局设置一个button width = 100dp height = 10dp 1dp = 3px
执行结果
Width : 300 Height : 30