2017-08-28 61 views
0

我想獲取ImageView的寬度和高度(例如)。但是,如果我在onCreate事件中使用getWidth/getHeight方法,我只能得到零。 我應該使用哪個事件來獲取視覺元素的真實參數?有哪些Android事件視圖元素可用

回答

1

當onCreate被調用時,視圖還沒有繪製出來,所以沒有辦法在這個事件中立即獲得視圖的大小。 將觀察者添加到您需要的尺寸的視圖並等待onGlobalLayout事件。該視圖繪製後將拋出此事件。

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    (...) 
    final View = findViewById(R.id.view); 
    final ViewTreeObserver observer= view.getViewTreeObserver(); 
    observer.addOnGlobalLayoutListener(
     new ViewTreeObserver.OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 
       Log.d("Log", "Height: " + view.getHeight()); 
       Log.d("Log", "Width: " + view.getWidth()); 
      } 
     }); 
} 
相關問題