2015-09-26 76 views
0

返回零我知道这是一种重复,但其他问题的答案没有帮助我。总是我的ImageView高度返回零。这里是我的尝试:ImageView高度始终在android

dart.getViewTreeObserver().addOnPreDrawListener(
    new ViewTreeObserver.OnPreDrawListener() { 
     public boolean onPreDraw() { 
     int finalHeight = dart.getMeasuredHeight(); 
     int finalWidth = dart.getMeasuredWidth(); 
     Toast.makeText(MainActivity.this," "+finalHeight,Toast.LENGTH_SHORT).show(); 
     return true; 
    } 
}); 

而且 -

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    height = dart.getHeight(); 
    width = dart.getWidth(); 
    Toast.makeText(MainActivity.this," "+height,Toast.LENGTH_SHORT).show(); 
} 

而且我也试过dart.getHeight()onCreate内,但我的理解是不能工作。我能做什么?

回答

0

添加addonPreDrawListenerViewTreeObserver,并在您onPreDraw()方法

ViewTreeObserver vto = iv.getViewTreeObserver(); 
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
     public boolean onPreDraw() { 
      dart.getViewTreeObserver().removeOnPreDrawListener(this); 
      finalHeight = dart.getMeasuredHeight(); 
      finalWidth = dart.getMeasuredWidth(); 
      Toast.makeText(MainActivity.this," "+finalHeight,Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 
+0

它显示正确的高度,但我想在我的onCreate方法来使用它拨打dart.getViewTreeObserver().removeOnPreDrawListener(this);,能不能做到?如果我在onPreDraw()之外使用它,它仍然为零.. – DavidBalas2

+0

好吧我在onPreDraw():)中使用它 – DavidBalas2