版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/miao9999/article/details/84644177
-
屏幕的高度(1920px)
//屏幕 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); Log.e("MainActivity", "屏幕高:" + dm.heightPixels);
-
顶部状态栏的高度(66px)
// 状态栏的高度 int statusBarHeight1 = -1; //获取status_bar_height资源的ID int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { //根据资源ID获取响应的尺寸值 statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); }
-
应用区域的高度(屏幕的高度-状态栏的高度)(1854px)
//应用区域 Rect outRect1 = new Rect(); // outRect1 被处理成应用的显示区域(除状态栏之外的所有可视区域) getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect1);
通过 getWindowVisibleDisplayFrame(outRect1) 方法获取到应用区域的高度
-
public void getWindowVisibleDisplayFrame(Rect outRect) { ... // 通过下面几行获取到应用区域的高度 final Rect insets = mAttachInfo.mVisibleInsets; outRect.left += insets.left; outRect.top += insets.top; outRect.right -= insets.right; outRect.bottom -= insets.bottom; return; } // The view is not attached to a display so we don't have a context. // Make a best guess about the display size. Display d = DisplayManagerGlobal.getInstance().getRealDisplay(Display.DEFAULT_DISPLAY); d.getRectSize(outRect); }
-
标题栏的高度(168px)
// 标题栏的高度 int viewTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
-
具体实例
整个屏幕的高度是 1920px,最上面红色的部分为状态栏高度是 66px,拉下来蓝色的部分是标题栏高度是 168px,剩余部分为 content 的内容,setContentView() 时设置的根布局的高度。如果 theme 的主题设置为 NoActionBar 的话,标题栏的高度为 0 ,content 的高度为屏幕的高度-状态栏的高度。