Frage

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.

War es hilfreich?

Andere Tipps

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top