5

I am trying to find the width and height of the screen but none of the ways I have tried will work in the class I created, my code is below.

Does anyone know how to find it? I cannot use the way I am trying below because .getWidth() is deprecated?

public class Crate {

    public int acrossCrate;
    public int upDownCrate;
    Context theContext;

    WindowManager wm = (WindowManager)theContext.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    int width = display.getWidth();


    public Crate() {
    acrossCrate = 650;
    upDownCrate = 650;
    //int width = ;
    //int height = ;

  }
 } 
onexf
  • 3,674
  • 3
  • 22
  • 36
Ciaran
  • 697
  • 1
  • 12
  • 35

1 Answers1

12

Use below code

private int getScreenHeight(Context context) {
        int height;

        if (android.os.Build.VERSION.SDK_INT >= 13) {
            WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            Display display = wm.getDefaultDisplay();
            Point size = new Point();
            display.getSize(size);
            height = size.y;
        } else {
            WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            Display display = wm.getDefaultDisplay();
            height = display.getHeight();  // deprecated
        }

        return height;
    }
Phuc Tran
  • 7,555
  • 1
  • 39
  • 27
  • getSize() is the better way to go, seeing as getHeight() and getWidth() were deprecated a couple of years ago. This is a better answer to OP's question. – MarsAtomic Jun 19 '15 at 04:45