How to get screen display metrics in application class

前端 未结 6 540
自闭症患者
自闭症患者 2020-11-30 10:38

If I put this in some activity class it works perfectly but, when I put it in my App class the method getWindowManager() can not be found. Is there some way to

相关标签:
6条回答
  • 2020-11-30 11:20

    Try this:

    Display display = getWindowManager().getDefaultDisplay();
    Log.e("", "" + display.getHeight() + " " + display.getWidth());
    
    0 讨论(0)
  • 2020-11-30 11:25

    Without Context use -

    Resources.getSystem().displayMetrics.widthPixels
    

    With Context -

    context?.resources?.displayMetrics?.widthPixels
    

    Note : getWindowManager().getDefaultDisplay().getMetrics(dm); returns void in the new API.

    0 讨论(0)
  • 2020-11-30 11:27
    final DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    
    int width = dm.widthPixels;
    int height = dm.heightPixels;
    
    getWindow().setLayout((int) (width * .8), (int) (height * .5));
    
    0 讨论(0)
  • 2020-11-30 11:29

    Here, Context.getResource()

    DisplayMetrics dm = getResources().getDisplayMetrics(); 
    int densityDpi = dm.densityDpi;
    0 讨论(0)
  • 2020-11-30 11:39

    hope this will work for you

    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
    int pxWidth = displayMetrics.widthPixels;
    int pxHeight = displayMetrics.heightPixels;
    
    0 讨论(0)
  • 2020-11-30 11:41

    You can also try this:

    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    final DisplayMetrics displayMetrics = new DisplayMetrics();
    wm.getDefaultDisplay().getMetrics(displayMetrics);
    int height = displayMetrics.heightPixels;
    int width = displayMetrics.widthPixels;
    
    0 讨论(0)
提交回复
热议问题