【问题标题】:Calculate Android screen size计算安卓屏幕大小
【发布时间】:2015-08-05 08:16:46
【问题描述】:

我有这段代码:

    Point point = new Point();
    getWindowManager().getDefaultDisplay().getSize(point);
    setScreenSize(point);

这将返回显示的总高度(以像素为单位)。 但是,这包括通知栏,并且在某些设备上,底部栏包含特定于 android 的按钮(返回、主页和其他按钮)。

我的问题分为两部分。

如何知道通知栏的高度? 如何查找设备屏幕上是否有这些按钮,如果有,该栏的高度是多少?

【问题讨论】:

  • 您确定不想只获取您正在使用的布局/容器的尺寸吗?
  • 我也必须得到那个,但我知道该怎么做。我需要确切的应用高度。
  • 我需要的不是状态栏,就是上面那个小通知托盘

标签: android screen-size


【解决方案1】:

你可以试试这些。我最近在我的一个项目中使用了下面的代码。它有效

Display display = getWindowManager().getDefaultDisplay();
String displayName = display.getName();  // minSdkVersion=17+
Log.i(TAG, "displayName  = " + displayName);

//以像素为单位的显示大小

Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Log.i(TAG, "width        = " + width);
Log.i(TAG, "height       = " + height);

// 进入(像素或 dpi)

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int heightPixels = metrics.heightPixels;
int widthPixels = metrics.widthPixels;
int densityDpi = metrics.densityDpi;

//这个已弃用

int screenHeight = display.getHeight();
int screenWidth = display.getWidth();
Log.i(TAG, "screenHeight = " + screenHeight);
Log.i(TAG, "screenWidth  = " + screenWidth);

【讨论】:

    【解决方案2】:

    你可以在Android Material Design Specification中找到很多默认的Android规范,例如StatusBar(Metrics & Keylines)和NavBar(Structure)...

    我相信状态栏是 24dp,NavBar 是 48dp 作为标准。

    您可以使用以下方法获取 DP 中的宽度和高度:

    DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
    
    float screenWidthDP = displayMetrics.widthPixels / displayMetrics.density;
    float screenHeightDP = displayMetrics.heightPixels / displayMetrics.density;
    

    Material Design Specification

    【讨论】:

      【解决方案3】:

      你可以这样做:

      Display mDisplay = getWindowManager().getDefaultDisplay();
      Point mPoint = new Point();
      mDisplay.getSize(mPoint);
      int width = mPoint.x;
      int height = mPoint.y;
      

      希望这会对你有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 2011-06-28
        • 2017-03-24
        • 2011-09-08
        相关资源
        最近更新 更多