您好我正在尝试让屏幕的屏幕大小减去底部的菜单栏。
我知道我可以根据设备的分辨率减去一个常数,但这是一个超级丑陋的黑客。我相信谷歌人不会傻到忘记给用户一个功能来获得底部菜单栏的高度,这样我就可以从全屏尺寸中减去它
这是一篇类似的帖子。 Size of android notification bar and title bar?
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
what_i_need =metrics.heightPixels-buttomMenuHeight();
我需要buttomMenuHeight();
我在API中找不到它。我此时并不关心落后的可比性
由于
答案 0 :(得分:7)
为什么不使用活动顶级视图的高度?例如如果您的活动包含全高度LinearLayout,请使用其高度,这样您就不必知道菜单高度或标记栏高度。
我认为你正在进行这种计算的危险之路,因为你不知道Android的未来布局可能是什么,或者它们在Google TV上可能会有什么不同等等。
答案 1 :(得分:1)
尝试在onLayout之后调用getHeight()。该视图在膨胀时没有调整大小。
编辑: 或者由于Activity没有onLayout,你可能会等待onSizeChanged。
答案 2 :(得分: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一样。