activity获取宽高为0的原因是view还没画出来呢
在oncreate中View.getWidth和View.getHeight无法获得一个view的高度和宽度,这是因为View组件布局要在onResume回调后完成。
我是用getViewTreeObserver().addOnGlobalLayoutListener()来获得宽度或者高度
解决方案:
话不多说直接上代码
img_qrcode.getViewTreeObserver().addOnGlobalLayoutListener(
//view 布局完成时调用,每次view改变时都会调用
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imgWidth = img_qrcode.getWidth();
imgHeight = img_qrcode.getHeight();
//已过时
img_qrcode.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
}`