Obtener las dimensiones de la pantalla en píxeles
He creado algunos elementos personalizados y quiero colocarlos mediante programación en la esquina superior derecha (a n
píxeles del borde superior y a m
píxeles del borde derecho). Por lo tanto, necesito obtener el ancho de la pantalla y la altura de la pantalla y luego establecer la posición:
int px = screenWidth - m;
int py = screenHeight - n;
¿Cómo obtengo screenWidth
y screenHeight
en la actividad principal?
1797
3
Si quieres las dimensiones de la pantalla en píxeles puedes usar
getSize
:Si no estás en una
Actividad
puedes obtener laPantalla
por defecto a través deWINDOW_SERVICE
:Si estás en un fragmento y quieres conseguirlo, utiliza Activity.WindowManager (en Xamarin.Android) o getActivity().getWindowManager() (en java).
Antes de que se introdujera
getSize
(en el nivel 13 de la API), podías utilizar los métodosgetWidth
ygetHeight
que ahora están obsoletos:Sin embargo, para el caso de uso que describes, parece más apropiado un margen/recuadro en el diseño.
Otra forma es: DisplayMetrics
Podemos utilizar
widthPixels
para obtener información de:Ejemplo:
Una forma es:
Está obsoleta, y deberías probar el siguiente código en su lugar. Las dos primeras líneas de código te dan los objetos
DisplayMetrics
. Este objeto contiene los campos comoheightPixels
,widthPixels
.Primero obtenga la vista (por ejemplo, mediante
findViewById()
) y luego puede utilizar getWidth() en la propia vista.