Android's FULL screen size

I want to get Android device's screen size. I'm using these 3 codes to do this but these are giving me the activity's size; which is without the size of the status bars height. On tablet with 800px height, this code gives 764px. 36px goes to status bar on the bottom.

    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;

But I need a code which gives me the actual size of the screen. Not the activity's. can anyone help me about this? Thank you.

Upvotes: 6

Views: 8422

Answers (2)

Onur A.
Onur A.

Reputation: 3017

For API Level 17 and above you can use getRealSize()

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

Upvotes: 5

Rahul
Rahul

Reputation: 10625

This snippet will give you height of your status bar.

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;

So the total height of screen is :-

height = height+TitleBarHeight;

original answer is here. Also note this will not work in onCreate put that code in runnable.

Upvotes: 3

Related Questions