2011-03-02 109 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。