Descripción general de la compatibilidad de pantallas

Android se ejecuta en una variedad de dispositivos con diferentes tamaños y densidades de pantalla. El sistema realiza cambios de tamaño y ajustes básicos para adaptar la interfaz de usuario a las diferentes pantallas, pero tú puedes tomar medidas adicionales para garantizar que la IU de tu app se adapte correctamente a cada una.

En esta página, se proporciona una descripción general de estos temas y las funciones disponibles en Android que ayudan a tu app a adaptarse correctamente. Para obtener instrucciones más específicas sobre cómo crear una app para estas variaciones de pantalla, consulta las siguientes páginas:

Tamaños de pantalla

El tamaño de la pantalla es el espacio visible provisto para la IU de tu app. No corresponde al tamaño real de la pantalla del dispositivo, ya que tiene en cuenta la orientación, las decoraciones del sistema (como la barra de navegación) y los cambios en la configuración de ventanas (por ejemplo, cuando el usuario habilita el modo Multiventana).

Diseños flexibles

De forma predeterminada, Android modifica el tamaño del diseño de la app para adaptarlo a la pantalla actual. Para garantizar que se realice correctamente, incluso en pantallas pequeñas, deberás implementar un diseño flexible. El principio fundamental que debes seguir es evitar posiciones y tamaños hard-coded para los componentes en la IU. En su lugar, debes permitir que los tamaños de vistas se estiren y especificar posiciones de vistas relacionadas con la vista principal o las secundarias para que el orden y los tamaños relativos no cambien cuando aumente el tamaño.

Obtén más información sobre diseños flexibles.

Diseños alternativos

Un diseño flexible es muy importante, pero también debes crear diseños diferentes que optimicen la experiencia del usuario en el espacio disponible en distintos dispositivos, como teléfonos y tablets. Por ello, Android te permite proporcionar archivos de diseños alternativos, que el sistema aplicará durante el tiempo de ejecución según el tamaño de la pantalla del dispositivo actual.

Figura 1: La misma app tiene un diseño diferente para los distintos tamaños de pantalla.

Obtén más información sobre cómo crear diseños alternativos.

Imágenes estirables

Como el diseño debe estirarse para adaptarse a la pantalla actual, también deberían hacerlo los mapas de bits que adjuntes en cualquiera de las vistas del diseño. Sin embargo, si estiras un mapa de bits común en direcciones arbitrarias, es posible que el resultado sean imágenes torcidas y artefactos de ajuste extraños.

Para resolver este problema, Android admite mapas de bits de NinePatch, en los que puedes especificar pequeñas regiones de píxeles estirables (el resto de la imagen permanecerá sin ajustar).

Obtén más información sobre los mapas de bits de NinePatch.

Densidades de píxeles

La densidad de píxeles es la cantidad de píxeles dentro de un área física de la pantalla, y se hace referencia a ella como DPI (puntos por pulgada), que es diferente de la resolución (cantidad total de píxeles en una pantalla).

Figura 2: Una exageración de dos dispositivos que son del mismo tamaño, pero que tienen diferentes densidades de píxeles.

Independencia de la densidad

La app se considera "independiente de la densidad" cuando mantiene el tamaño físico (desde el punto de vista del usuario) del diseño de la IU al mostrarse en pantallas con diferentes densidades de píxeles (como se muestra en la figura 2). Mantener la independencia de la densidad es importante porque, sin ella, un elemento de IU (como un botón) puede aparecer más grande en una pantalla con densidad baja y más pequeño en una con densidad alta (porque cuando los píxeles son más grandes, como se muestra en la figura 2, unos pocos píxeles pueden abarcar más espacio).

El sistema Android te permite lograr la independencia mediante los píxeles independientes de la densidad (dp o dip), una unidad de medida que deberías usar en lugar de los píxeles (px).

Obtén más información sobre los píxeles independientes de la densidad.

Mapas de bits alternativos

Para garantizar que tus imágenes se muestren de la mejor manera posible en todas las pantallas, debes proporcionar mapas de bits alternativos que coincidan con la densidad de cada pantalla. Por ejemplo, si tu app proporciona mapas de bits solo para pantallas de densidad media (mdpi), Android los aumenta cuando aparecen en pantallas de densidad alta para que la imagen ocupe el mismo espacio físico en la pantalla. Esta acción puede provocar que haya artefactos de ajuste visibles en los mapas de bits, por lo que tu app deberá incluir mapas de bits alternativos con resoluciones más altas.

Obtén más información sobre cómo proporcionar mapas de bits alternativos.

Gráficas vectoriales

Para las imágenes de tipo simple (en general, íconos), puedes evitar crear imágenes separadas para cada densidad si usas gráficas vectoriales. Como estas definen la ilustración con trayectorias geométricas en lugar de píxeles, se pueden dibujar en cualquier tamaño sin artefactos de ajuste.

Obtén más información sobre cómo usar gráficas vectoriales.

Wear OS, TV, Auto y Sistema operativo Chrome

Las recomendaciones que se brindan más arriba se aplican a todos los factores de forma de Android, pero si quieres crear una app para Wear OS, Android TV, Android Auto o dispositivos con el Sistema operativo Chrome, deberás realizar algunos pasos más.

Cada uno de estos dispositivos tiene su propio modelo de interacción con el usuario, al que tu app debería acomodarse. En algunos casos, como el de Wear OS, deberías volver a considerar la experiencia del usuario y crear una app especializada para ese dispositivo. Y para que sean compatibles con dispositivos con el Sistema operativo Chrome (como Google Pixelbook), es posible que debas realizar pequeñas modificaciones en la app existente para que admita la interacción entre el teclado y el mouse, y una pantalla mucho más grande.

Para obtener compatibilidad con estos dispositivos, consulta las siguientes guías para desarrolladores:

Incompatibilidad con la pantalla

Aunque el marco de trabajo de Android y las herramientas te brindan todo lo que necesitas para hacer que una app se adapte a todas las configuraciones de pantalla, es posible que aun así no quieras que tu app esté disponible para determinadas configuraciones de pantalla debido a algún tipo de incompatibilidad.

En ese caso, puedes declarar que tu app solo es compatible con pantallas específicas.