How to get screen width and height

后端 未结 14 1058
梦如初夏
梦如初夏 2020-12-12 20:31

I tried to use following code to get screen width and height in android app development:

Display display = getWindowManager().getDefaultDisplay(); 
int scree         


        
14条回答
  •  失恋的感觉
    2020-12-12 21:17

    If you're calling this outside of an Activity, you'll need to pass the context in (or get it through some other call). Then use that to get your display metrics:

    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    

    UPDATE: With API level 17+, you can use getRealSize:

    Point displaySize = new Point();
    activity.getWindowManager().getDefaultDisplay().getRealSize(displaySize);
    

    If you want the available window size, you can use getDecorView to calculate the available area by subtracting the decor view size from the real display size:

    Point displaySize = new Point();
    activity.getWindowManager().getDefaultDisplay().getRealSize(displaySize);
    
    Rect windowSize = new Rect();
    ctivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(windowSize);
    
    int width = displaySize.x - Math.abs(windowSize.width());
    int height = displaySize.y - Math.abs(windowSize.height());
    return new Point(width, height);
    

    getRealMetrics may also work (requires API level 17+), but I haven't tried it yet:

    DisplayMetrics metrics = new DisplayMetrics();
    activity.GetWindowManager().getDefaultDisplay().getRealMetrics(metrics);
    

提交回复
热议问题