Если у вас нет другого выбора, попробуйте использовать getMeasuredWidth () или getMeasuredHeight ():
relativeLayout.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int width = relativeLayout.getMeasuredWidth();
int height = relativeLayout.getMeasuredHeight();
Но в зависимости от вашей проблемы попробуйте удалитьOnGlobalLayoutListener только тогда, когда высота или вес больше 0, потому что если ширина вашего макета / height это "wrap_content", это может быть действительно 0:
relativeLayout.getViewTreeObserver()
.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// TODO Auto-generated method stub
width = relativeLayout.getWidth();
height = relativeLayout.getHeight();
if (width > 0) {
relativeLayout.getViewTreeObserver()
.removeOnGlobalLayoutListener(this);
}
}
});