<supports-screens>

sintaxis:
<supports-screens android:resizeable=["true"| "false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>
se incluye en:
<manifest>
descripción:

Te permite especificar los tamaños de pantalla compatibles con tu aplicación y habilitar el modo de compatibilidad para pantallas más grandes que las que esta admite. Es importante que siempre uses este elemento en tu aplicación para especificar los tamaños de pantalla que admite.

Nota: El modo de compatibilidad de pantalla no es el modo en el que deseas que se ejecute tu aplicación. Este modo pixela la IU y reduce su nitidez debido al zoom. La forma correcta de hacer que tu aplicación funcione bien en pantallas grandes es seguir la Descripción general de compatibilidad de pantalla y proporcionar diseños alternativos para diferentes tamaños de pantalla.

Una aplicación es "compatible" con un tamaño de pantalla determinado si cambia de tamaño correctamente para ocupar toda la pantalla. El cambio de tamaño normal que realiza el sistema funciona bien para la mayoría de las aplicaciones y no tienes que hacer ningún trabajo adicional para que tu aplicación funcione en pantallas más grandes que la de un dispositivo móvil.

Sin embargo, a menudo, es importante que optimices la IU de tu aplicación para diferentes tamaños de pantalla con recursos de diseño alternativos. Por ejemplo, es posible que desees modificar el diseño de una actividad cuando está en una tablet y cuando se ejecuta en un teléfono celular.

Sin embargo, si tu aplicación no funciona bien cuando cambia de tamaño para ajustarse a diferentes pantallas, puedes usar los atributos del elemento <supports-screens> para controlar si debe distribuirse a pantallas más pequeñas o si tu interfaz de usuario debe ampliarse (con el zoom) para ajustarse a pantallas más grandes con el modo de compatibilidad de pantalla del sistema.

Si no diseñaste tu aplicación para tamaños más grandes de pantalla y el cambio de tamaño normal no logra los resultados apropiados, el modo de compatibilidad de pantalla escalará tu IU emulando una pantalla de tamaño normal y densidad media. Luego, la acercará para que ocupe toda la pantalla. Ten en cuenta que este proceso pixela la IU y reduce su nitidez, por lo que te recomendamos optimizar la IU para que funcione en pantallas grandes.

Nota: Android 3.2 introdujo nuevos atributos (android:requiresSmallestWidthDp, android:compatibleWidthLimitDp y android:largestWidthLimitDp). Si estás desarrollando tu aplicación para Android 3.2 y versiones posteriores, debes usar estos atributos para declarar con qué tamaños de pantalla es compatible, en lugar de los atributos basados en tamaños generalizados.

Información sobre el modo de compatibilidad de pantalla

El modo de compatibilidad de pantalla es el último recurso para que las apps que no están diseñadas correctamente aprovechen las pantallas más grandes. No es conveniente ejecutar tu app en este modo, ya que ofrece una experiencia del usuario subóptima. Hay dos versiones del modo de compatibilidad de pantalla según la versión del dispositivo en la que se ejecuta la app.

En las versiones de Android 1.6 a 3.1, el sistema ejecuta tu aplicación en una ventana de "sello postal". Emula una pantalla de 320 dp x 480 dp con un borde negro que llena el área restante.

En Android 3.2 y versiones posteriores, el sistema dibuja el diseño como lo haría en una pantalla de 320 dp x 480 dp y luego lo escala para ocupar todo el espacio. Esto suele provocar desperfectos en la IU, como imágenes poco nítidas o pixeladas.

Para obtener más información sobre cómo admitir correctamente los diferentes tamaños de pantalla a fin de evitar el uso del modo de compatibilidad de pantalla con tu aplicación, consulta Descripción general de compatibilidad de pantalla.

atributos:
android:resizeable
Indica si es posible cambiar el tamaño de la aplicación en diferentes tamaños de pantalla. Este atributo es "true" de forma predeterminada. Si se configura en "false", el sistema ejecuta tu aplicación en el modo de compatibilidad de pantalla en pantallas grandes.

Este atributo dejó de estar disponible. Se había incluido para ayudar a las aplicaciones a pasar de Android 1.5 a 1.6, cuando se introdujo por primera vez la compatibilidad con varias pantallas. No lo uses.

android:smallScreens
Indica si la aplicación admite factores de forma de pantalla "pequeños". Una pantalla pequeña es aquella que tiene una relación de aspecto más pequeña que la "normal" (HVGA tradicional). Los servicios externos (como Google Play) no pondrán a disponibilidad del usuario aplicaciones que no sean compatibles con pantallas pequeñas. Esto se debe a que la plataforma no puede hacer que esas aplicaciones funcionen adecuadamente en dispositivos que tengan ese tipo de pantallas. Es "true" de forma predeterminada.
android:normalScreens
Indica si una aplicación admite los factores de forma de pantalla "normales". Tradicionalmente, es una pantalla de densidad media de HVGA, pero la densidad baja de WQVGA y la de alta densidad WVGA también se consideran normales. Este atributo es "true" de forma predeterminada.
android:largeScreens
Indica si la aplicación admite factores de forma de pantalla "grandes". Una pantalla grande es aquella que es mucho más grande que la de un teléfono "normal". Por lo tanto, es posible que la aplicación requiera cierta atención para aprovecharla correctamente, aunque dependa del cambio de tamaño realizado por el sistema para ocupar la pantalla.

El valor predeterminado correspondiente varía entre algunas versiones, por lo que se recomienda declarar explícitamente este atributo. Ten en cuenta que configurarlo en "false" suele habilitar el modo de compatibilidad de pantalla.

android:xlargeScreens
Indica si la aplicación admite factores de forma de pantalla "extragrandes". Una pantalla extragrande es aquella que es mucho más grande que una "grande", como una tablet (o un dispositivo de mayor tamaño). Por lo tanto, es posible que la aplicación requiera cierta atención para aprovecharla correctamente, aunque dependa del cambio de tamaño realizado por el sistema para ocupar la pantalla.

El valor predeterminado correspondiente varía entre algunas versiones, por lo que se recomienda declarar explícitamente este atributo. Ten en cuenta que configurarlo en "false" suele habilitar el modo de compatibilidad de pantalla.

Este atributo se introdujo en el nivel de API 9.

android:anyDensity
Indica si la aplicación incluye recursos para adaptarse a cualquier densidad de pantalla.

En el caso de las aplicaciones compatibles con Android 1.6 (nivel de API 4) y versiones posteriores, "true" se establece de forma predeterminada. No debes configurarlo como "false" a menos que estés absolutamente seguro de que es necesario para que funcione. El único momento en que podría ser necesario desactivar esta configuración es si tu app manipula directamente mapas de bits. Para obtener más información, consulta la Descripción general de la compatibilidad de pantallas.

android:requiresSmallestWidthDp
Especifica el smallestWidth mínimo que se requiere para la app. El smallestWidth es la dimensión más corta del espacio de la pantalla, en unidades dp, que debe estar disponible para la IU de tu aplicación. Es decir, es la más corta de las dos dimensiones de pantalla disponibles.

Para que un dispositivo se considere compatible con tu aplicación, el smallestWidth del dispositivo debe ser igual o mayor que este valor. Por lo general, el valor que proporcionas para esto es el "ancho más pequeño" que admite tu diseño, independientemente de la orientación actual de la pantalla.

Por ejemplo, una pantalla de teléfono celular típica tiene un smallestWidth de 320 dp, una tablet de 7 pulgadas tiene un smallestWidth de 600 dp, y una de 10 pulgadas tiene un smallestWidth de 720 dp. Estos valores son generalmente el smallestWidth porque son la dimensión más corta del espacio disponible de la pantalla.

El tamaño con el que se compara el valor tiene en cuenta las decoraciones de la pantalla y la IU del sistema. Por ejemplo, si el dispositivo tiene algunos elementos de la IU persistentes en la pantalla, el sistema declara que el smallestWidth del dispositivo es más pequeño que el tamaño real de la pantalla, porque esos píxeles no están disponibles para tu IU.

Si tu aplicación cambia el tamaño correctamente para pantallas más pequeñas, hasta el tamaño "pequeño" o un ancho mínimo de 320 dp, no es necesario usar este atributo. De lo contrario, debes usar un valor para este atributo que coincida con el valor más pequeño que usa tu aplicación para el calificador de ancho de pantalla más pequeño (sw<N>dp).

Precaución: El sistema Android no tiene en cuenta este atributo, por lo que no afecta al comportamiento de tu aplicación durante la ejecución. Por lo tanto, se usa para habilitar el filtrado de tu aplicación en servicios como Google Play. Sin embargo, en la actualidad, Google Play no admite este atributo para filtrar en Android 3.2, por lo que debes seguir usando los otros atributos de tamaño si tu aplicación no admite pantallas pequeñas.

Este atributo se introdujo en el nivel de API 13.

android:compatibleWidthLimitDp
Este atributo permite habilitar el modo de compatibilidad de pantalla como una función opcional del usuario especificando el "ancho de pantalla más pequeño" máximo para el que está diseñada la aplicación. Si el lado más pequeño de la pantalla disponible de un dispositivo es mayor que tu valor aquí, los usuarios aún pueden instalar tu aplicación, pero se les ofrece ejecutarla en modo de compatibilidad de pantalla.

De forma predeterminada, el modo de compatibilidad de pantalla está inhabilitado y tu diseño cambia de tamaño para adaptarse a la pantalla como de costumbre. Hay un botón disponible en la barra del sistema que le permite al usuario activarlo y desactivarlo.

Si tu aplicación es compatible con todas las pantallas y su diseño cambia de tamaño de manera correcta, no es necesario que uses este atributo.

Nota: Actualmente, el modo de compatibilidad de pantalla emula solamente las pantallas del teléfono con un ancho de 320 dp, por lo que el modo de compatibilidad de pantalla no se aplica si su valor para android:compatibleWidthLimitDp es mayor que 320.

Este atributo se introdujo en el nivel de API 13.

android:largestWidthLimitDp
Este atributo te permite forzar la habilitación del modo de compatibilidad de pantalla especificando el "ancho de pantalla más pequeño" máximo para el que está diseñada tu aplicación. Si el lado más pequeño de la pantalla disponible de un dispositivo es mayor que tu valor aquí, la aplicación se ejecutará en modo de compatibilidad de pantalla sin que el usuario pueda desactivarla.

Si tu aplicación es compatible con todas las pantallas y su diseño cambia de tamaño de manera correcta, no es necesario que uses este atributo. De lo contrario, primero considera usar el atributo android:compatibleWidthLimitDp. En cuanto al atributo android:largestWidthLimitDp, usalo solo si tu aplicación no funciona correctamente cuando cambia de tamaño para adaptarse a pantallas más grandes y el modo de compatibilidad de pantalla es la única forma en que los usuarios deben usarla.

Nota: Actualmente, el modo de compatibilidad de pantalla emula solamente las pantallas del teléfono con un ancho de 320 dp, por lo que el modo de compatibilidad de pantalla no se aplica si su valor para android:largestWidthLimitDp es mayor que 320.

Este atributo se introdujo en el nivel de API 13.

primera inclusión:
Nivel de API 4
consulta también: