【发布时间】:2012-11-19 05:49:59
【问题描述】:
在 Android 中,如何获取应用窗口的大小?我不是在寻找物理屏幕大小,而是屏幕上应用程序窗口的实际大小。例如。一般拿掉通知栏、轻触按钮等之后剩下的东西。
【问题讨论】:
标签: android dimensions
在 Android 中,如何获取应用窗口的大小?我不是在寻找物理屏幕大小,而是屏幕上应用程序窗口的实际大小。例如。一般拿掉通知栏、轻触按钮等之后剩下的东西。
【问题讨论】:
标签: android dimensions
如果您想要应用程序窗口的大小,您可以调用 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);
许多不同的方法可以做到这一点。
当然需要您提供更多信息才能给出更准确的答案。
【讨论】:
这也很简单:
Rect windowRect = new Rect();
yourView.getWindowVisibleDisplayFrame(windowRect);
int hWindow = windowRect.height();
int wWindow = windowRect.width();
【讨论】: