2011-09-03 42 views
2

如果我在fill_parent的高度和寬度上有一個佈局,有沒有辦法在onCreate方法中獲取其高度和寬度?如果沒有,當他的尺寸可用時?我需要這個,因爲我需要在運行時添加一些視圖,我需要知道有多少視圖填充佈局。android在onCreate方法中獲取可繪製區域

回答

3

你可以這樣做:。 假設你有onCreate方法中的佈局視圖

 layout.post(new Runnable() { 
     @Override 
      public void run() { 
      height= getHeight(); 
      width=getWidth();   
      //pupulate other views now that you know the parent size  
      } 
     } 
    }); 
+0

我認爲在這個解決方案,但什麼時候會這個runnable執行?如果它會在所有視圖被繪製之前執行?並且如果在繪製完所有視圖後執行它,這不是一個簡單的解決方案來通知一個對象,所以我可以使用這個值...它必須是一個簡單的方法... –

+0

接受我的答案,但在你的意見你似乎你沒有找到解決方案。這是一個missclick,並希望更多的幫助,或工程? – weakwire

2

您可以使用onSizeChanged方法獲取已計算的信息,但這也可能有助於至少獲得顯示的尺寸。

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
int width = display.getWidth(); 

你會發現這個有用:

when is onSizeChanged() called?

+0

onSizeChanged是一個視圖方法。我需要將ImageView添加到我的屏幕,我不做衣服佈局。並且顯示屏會顯示屏幕的整個高度。我只需要繪製區域,在標題欄上和通知區域上不能繪製視圖 –

+0

fill_parent並不總是指整個屏幕。事實上幾乎從來沒有,因爲你有通知欄。 – weakwire

+0

@weakwire - 您可以根據大小獲得一個想法,根據顯示的大小計算放置多少個視圖,因爲四捨五入通知欄可以忽略。 –