在 Android 中,如何获取应用程序窗口的大小?我不是在寻找物理屏幕尺寸,而是屏幕上应用程序窗口的实际尺寸。例如,通常在您拿走通知栏、软触摸按钮等之后剩下的内容。
问问题
23005 次
2 回答
13
如果您想要应用程序窗口的大小,您可以调用 yourview.getHeight() 和 yourview.getWidth(); 但是必须绘制视图才能使其起作用。
如果你想在绘制之前获得高度,你可以这样做:
https://stackoverflow.com/a/10134260/1851478
虽然有很多不同的屏幕/视图测量情况,所以如果您可以更具体地了解“应用程序窗口的实际大小”,这是您的应用程序吗?还是主屏幕应用程序?,其他一些应用程序?
如果你想要可用空间减去装饰(状态栏/软按钮),你也可以反过来攻击它,例如测量实际屏幕尺寸(方法因 API 而异),然后减去状态栏的高度。
显示高度示例:
// Deprecated
((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
状态栏高度:
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
或者
int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);
许多不同的方法可以做到这一点。
当然需要您提供更多信息才能给出更准确的答案。
于 2012-12-01T00:04:35.080 回答
9
这也很容易:
Rect windowRect = new Rect();
yourView.getWindowVisibleDisplayFrame(windowRect);
int hWindow = windowRect.height();
int wWindow = windowRect.width();
于 2014-12-19T23:59:20.737 回答