【问题标题】:Android's FULL screen sizeAndroid的全屏尺寸
【发布时间】:2013-08-25 14:06:45
【问题描述】:

我想获取 Android 设备的屏幕尺寸。我正在使用这 3 个代码来执行此操作,但这些代码给了我活动的大小;这是没有状态栏高度的大小。 在高度为 800 像素的平板电脑上,此代码给出 764 像素。 36px 转到底部的状态栏。

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    final int width = size.x;
    final int height = size.y;



    Rect rectgle= new Rect();   
    Window window= getWindow();
    window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
    int height2= rectgle.bottom;



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

但我需要一个代码,它可以为我提供屏幕的实际大小。不是活动的。谁能帮我解决这个问题? 谢谢。

【问题讨论】:

    标签: android screen-size


    【解决方案1】:

    【讨论】:

    • 这有点笨,但实际上我不明白如何在我的类中创建一个 Display 对象?没有构造函数。
    • 你可以通过这个 Display display = getWindowManager().getDefaultDisplay(); 从窗口管理器中收集显示对象
    • 是的。我在你回答前 10 秒找到了 =) 是的。现在已经完成了。谢谢。
    【解决方案2】:

    这个 sn-p 会给你状态栏的高度。

    Rect rectgle= new Rect();
    Window window= getWindow();
    window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
    int StatusBarHeight= rectgle.top; 
    int contentViewTop= 
    window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
    int TitleBarHeight= contentViewTop - StatusBarHeight;
    

    所以屏幕的总高度是:-

    height = height+TitleBarHeight;
    

    原始答案是here。另请注意,这在 onCreate 中不起作用,将该代码置于可运行状态。

    【讨论】:

    • 我看到了这个答案。问题是:设备是平板电脑,而不是手机。所以状态栏在底部,而不是顶部。这段代码给了我 0px 的 StatusBarHeight。当我将 int StatusBarHeight= rectgle.top; 代码更改为 int StatusBarHeight= rectgle.bottom; 现在我得到了 activityHeight。这是 764 像素。所以要获取StatusBarHeight;我仍然需要屏幕的实际尺寸。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多