¿Hay alguna forma de determinar la categoría del tamaño de pantalla del dispositivo actual, como pequeño, normal, grande, xlarge?
No la densidad, sino el tamaño de la pantalla.
¿Hay alguna forma de determinar la categoría del tamaño de pantalla del dispositivo actual, como pequeño, normal, grande, xlarge?
No la densidad, sino el tamaño de la pantalla.
Puedes usar la Configuration.screenLayout
máscara de bits.
Ejemplo:
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
// on a large screen device ...
}
El siguiente código desarrolla la respuesta anterior, mostrando el tamaño de la pantalla como un Brindis.
El siguiente código muestra la densidad de la pantalla como un brindis.
fuente
La respuesta de Jeff Gilfelt como método auxiliar estático:
fuente
fuente
Gracias por las respuestas anteriores, eso me ayudó mucho :-) Pero para aquellos (como yo) obligados a seguir soportando Android 1.5, podemos usar la reflexión de Java para compatibilidad con versiones anteriores:
fuente
Configuration
clase. Estos son valores finales estáticos que se incluirán en línea en el momento de la compilación (es decir, se reemplazarán por sus valores reales), por lo que su código no se romperá en versiones anteriores de la plataforma.targetSdkVersion
versión más reciente.Si desea conocer fácilmente la densidad y el tamaño de la pantalla de un dispositivo Android, puede usar esta aplicación gratuita (no se requiere permiso): https://market.android.com/details?id=com.jotabout.screeninfo
fuente
¿Necesita verificar si hay pantallas de gran tamaño y x..altas densidades? Este es el código alterado de la respuesta elegida.
fuente
Aquí hay una versión de Xamarin para Android de la respuesta de Tom McFarlin
fuente
Pruebe esta función isLayoutSizeAtLeast (int screenSize)
Para verificar pantallas pequeñas, al menos 320x426 dp y superiores getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_SMALL);
Para verificar la pantalla normal, al menos 320x470 dp y superior getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_NORMAL);
Para comprobar la pantalla grande, al menos 480x640 dp y superiores getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_LARGE);
Para comprobar la pantalla extra grande, al menos 720x960 dp y superior getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_XLARGE);
fuente
En 2018, si necesita la respuesta de Jeff en Kotlin, aquí está:
fuente
¿No podrías hacer esto usando un recurso de cadena y enumeraciones? Puede definir un recurso de cadena que tenga el nombre del tamaño de pantalla, como PEQUEÑO, MEDIO o GRANDE. Luego, podría usar el valor del recurso de cadena para crear una instancia de la enumeración.
Defina una enumeración en su código para los diferentes tamaños de pantalla que le interesan.
Defina un recurso de cadena, digamos screenize, cuyo valor será PEQUEÑO, MEDIO o GRANDE.
screensize
un recurso de cadena en cada dimensión que le interese.Por ejemplo,
<string name="screensize">MEDIUM</string>
iría en values-sw600dp / strings.xml y values-medium / strings.xml y<string name="screensize">LARGE</string>
entraría en sw720dp / strings.xml y values-large / strings.xml.ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);
fuente
Copie y pegue este código en su
Activity
y cuando se ejecute, apareceráToast
la categoría de tamaño de pantalla del dispositivo.fuente