I created some custom elements and I want to programatically place them to the upper right corner (n pixels from the top edge and m pixels from the right edge) therefore I need to get the screen width and screen height and then set position:
int px = screenWidth - m;
int py = screenWidth - n;
Does anyone know how to get screenWidth and screenHeight in the main Activity?
Thanks
Best Answer:
If you want the the display dimensions in pixels you can use
getSize
:Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
If you're not in an
Activity
you can get the default Display
via WINDOW_SERVICE
:WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Before
getSize
was introduced (in API level 13), you could use the getWidth
and getHeight
methods that are now deprecated:Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
For the use case you're describing however a margin/padding in the layout seems more appropriate.
Source: http://stackoverflow.com/questions/1016896/android-how-to-get-screen-dimensions