在Android中,我怎样才能获取应用程序窗口的大小?我并不是在寻找物理屏幕尺寸,而是想要获取应用程序窗口在屏幕上的实际大小。例如,减去通知栏、软触摸按钮等后一般剩下什么。
如果你想获取应用程序窗口的大小,只需调用yourview.getHeight()和yourview.getWidth()即可。但是在这种情况下,视图必须已经被绘制。
如果你想在视图绘制之前获取其高度,可以使用以下方法:
https://dev59.com/x2kw5IYBdhLWcg3w4emS#10134260
屏幕/视图测量有很多不同的情况,因此如果您能更具体地说明“应用程序窗口的实际大小”,这是指您的应用程序还是主屏幕应用程序?或者是其他的应用程序?
如果您想要减去装饰(状态栏/软按钮)后的可用空间,也可以进行反向攻击,例如测量实际屏幕尺寸(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();