6

我想获取 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;

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

4

2 回答 2

5

对于 API 级别 17 及以上,您可以使用getRealSize()

https://developer.android.com/reference/android/view/Display.html#getRealSize(android.graphics.Point)

于 2013-08-25T14:58:29.747 回答
3

此代码段将为您提供状态栏的高度。

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;

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

于 2013-08-25T14:09:31.457 回答