문제

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.

도움이 되었습니까?

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top