我正在尝试获取屏幕高度,即
DeviceScreenHeight - NavigationBarHeight - TitleBarHeight
下面的代码总是给我一个752,但真正的屏幕高度是800。
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
mHeight = metrics.heightPixels;
如果我使用onLayoutChange()来获取垂直“match_parent”视图的高度,则高度为696.这是我需要的值。
但我想知道如何动态获取此值,以便在不同的设备上获得正确的“高度”。
答案 0 :(得分:0)
尝试
mWinMgr = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
int displayHeight = mWinMgr.getDefaultDisplay().getHeight();
其中context是Context实例。
答案 1 :(得分:0)
我会这样
RelativeLayout root = (RelativeLayout) findViewById(R.id.relativeLayout1);
root.post(new Runnable() {
public void run() {
Rect rect = new Rect();
Window win = getWindow();
win.getDecorView().getWindowVisibleDisplayFrame(rect);
int statusHeight = rect.top;
int contentViewTop = win.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int titleHeight = contentViewTop - statusHeight;
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int metricsheights=metrics.heightPixels-titleHeight-contentViewTop-statusHeight;
答案 2 :(得分:-1)
我找到了THIS代码。
DisplayMetrics metrics = getBaseContext().getResources().getDisplayMetrics();
int w = metrics.widthPixels;
int h = metrics.heightPixels;