屏幕的一些高度值

  1. 屏幕的高度(1920px)

    //屏幕
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    Log.e("MainActivity", "屏幕高:" + dm.heightPixels);
    
  2. 顶部状态栏的高度(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);
    }
    
  3. 应用区域的高度(屏幕的高度-状态栏的高度)(1854px)

    //应用区域
    Rect outRect1 = new Rect();
    // outRect1 被处理成应用的显示区域(除状态栏之外的所有可视区域)
    getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect1);
    

    通过 getWindowVisibleDisplayFrame(outRect1) 方法获取到应用区域的高度

  4. 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);
    }
    
  5. 标题栏的高度(168px)

    // 标题栏的高度
    int viewTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); 
    
  6. 具体实例

    在这里插入图片描述

    整个屏幕的高度是 1920px,最上面红色的部分为状态栏高度是 66px,拉下来蓝色的部分是标题栏高度是 168px,剩余部分为 content 的内容,setContentView() 时设置的根布局的高度。如果 theme 的主题设置为 NoActionBar 的话,标题栏的高度为 0 ,content 的高度为屏幕的高度-状态栏的高度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值