2015-09-26 3 views
0

Я знаю, что это своего рода дубликат, но ответы на другие вопросы мне не помогли. всегда мой ImageView высота возвращает ноль. вот что я пробовал:ImageView height всегда возвращает ноль в 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

Добавить addonPreDrawListener в ViewTreeObserver и вызвать dart.getViewTreeObserver().removeOnPreDrawListener(this); в вашем 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 метод, это может быть сделано? если я использую его вне onPreDraw(), он все равно равен нулю. – DavidBalas2

+0

Хорошо, я получил его для работы внутри onPreDraw() :) – DavidBalas2

Смежные вопросы