2011-03-02 112 views
3

您好我正在嘗試喲獲取屏幕的屏幕大小減去底部的菜單欄。屏幕大小蜂窩菜單android

我知道我可以根據設備的分辨率減去一個常數,但它是一個超級醜陋的黑客。我相信谷歌的人不會愚蠢地忘記給用戶一個函數來獲得底部菜單欄的高度,所以我可以從全屏尺寸中減去它

這是一個類似的帖子。 Size of android notification bar and title bar?

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

what_i_need =metrics.heightPixels-buttomMenuHeight(); 

我需要buttomMenuHeight();

我無法在API中找到它。我真的不關心向後可比性此時

感謝

回答

7

爲什麼不使用的活動的頂級觀的高度?例如如果您的活動包含全高LinearLayout,請使用其高度,因此您不必知道菜單高度或通知欄高度。

我覺得你正在踩這樣一種計算的危險之路,因爲你不知道Android的未來佈局可能是什麼,或者它們在Google TV或其他方面會有什麼不同。

+0

我繪製在本機代碼形象,我需要通過屏幕C. 我的尺寸試圖通過視圖中的getHeight()獲得高度,但它總是返回0即使在調用setContentView之後。 – user498584 2011-03-02 22:30:48

0

我繪製在本機代碼的圖像,我需要到屏幕的大小傳遞給C.

我試圖通過的getHeight獲得視線的高度(),但總是偶數後的setContentView是返回0調用。

RelativeLayout masterLayout = new RelativeLayout(this); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 
masterLayout.setLayoutParams(params); 
setContentView(masterLayout); 

當我嘗試masterLayout.getHeight(),則返回0。 我期望能獲得全屏幕的高度,我說FILL_PARENT。