Register now for Android Dev Summit 2019!

Descripción general de la compatibilidad de pantalla

Android se ejecuta en diferentes dispositivos con diferentes tamaños y densidades de píxeles de pantalla. El sistema realiza escalamiento y modificación de tamaño básicos para adaptar tu interfaz de usuario a diferentes pantallas, pero aún hay trabajo por hacer a fin de garantizar que tu IU se adapte correctamente a cada tipo de pantalla.

En esta página, se proporciona una descripción general de estos temas y las funciones disponibles en Android a fin de ayudarte a adaptar tu app de forma adecuada. Si quieres acceder a instrucciones más específicas sobre la manera de compilar tu app para esas variaciones de pantalla, consulta estas páginas:

Tamaños de pantalla

El tamaño de pantalla es el espacio visible proporcionado por la IU de tu app. El tamaño de la pantalla, como tu app lo reconoce, no es el tamaño real de la pantalla del dispositivo; considera la orientación de la pantalla, las decoraciones del sistema (por ejemplo, la barra de navegación) y los cambios en la configuración de las ventanas (por ejemplo, la habilitación d el modo de ventanas múltiples por parte del usuario).

Diseños flexibles

De forma predeterminada, Android modifica el tamaño del diseño de tu app para ajustarlo a la pantalla actual. Para garantizar que el tamaño de tu diseño se modifique bien aun para las variaciones de tamaños de pantalla más pequeñas, debes implementar tu diseño pensando en la flexibilidad. El principio central que debes seguir es evitar codificar la posición y el tamaño de los componentes de tu IU. En su lugar, permite ampliar los tamaños de las vistas y especificar posiciones para las vistas en relación con la vista principal o secundaria, de modo que el orden deseado y los tamaños relativos se mantengan sin modificaciones a medida que se expande el diseño.

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

Diseños alternativos

Un diseño alternativo es muy importante, pero también debes crear diferentes diseños que optimicen la experiencia del usuario para el espacio disponible en diferentes dispositivos, como teléfonos y tablets. Android te permite proporcionar archivos de diseño alternativos que el sistema aplica en el tiempo de ejecución en función del tamaño de pantalla actual del dispositivo.

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

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

Imágenes expandibles

Debido a que tu diseño debe ampliarse para ajustarse al tamaño actual de la pantalla, lo mismo debe ocurrir con los mapas de bits que adjuntas a cualquiera de tus vistas de diseño. No obstante, estirar un mapa de bits común en direcciones arbitrarias puede generar alteraciones extrañas en el escalamiento y distorsión en las imágenes.

Para resolver esto, Android admite mapas de bits nine-patch en los que se especifican pequeñas regiones de píxeles que son expandibles; el resto de la imagen se mantiene sin escalamiento.

Obtén más información sobre mapas de bits nine-patch.

Densidades de píxeles

La densidad de píxeles es la cantidad de píxeles presentes en un área física de la pantalla, y se conoce como ppp (puntos por pulgada). Esto se diferencia de la resolución, que es la cantidad total de píxeles en una pantalla.

Figura 2: Exageración de dos dispositivos del mismo tamaño y densidades de píxeles diferentes.

Independencia de la densidad

Tu app alcanza la “independencia de la densidad” si preserva el tamaño físico (desde la perspectiva del usuario) del diseño de la IU cuando se muestra en pantallas con densidades de píxeles diferentes (como se muestra en la figura 2). Mantener la independencia de la densidad es importante porque, sin ella, un elemento de la IU (como un botón) podría parecer más grande en una pantalla de baja densidad y más pequeño en una pantalla de alta densidad (ya que cuando los píxeles son más grandes, como se muestra en la figura 2, una pequeña cantidad de estos puede tener un alto impacto).

El sistema Android te ayuda a alcanzar la independencia de la densidad proporcionando píxeles independientes de la densidad (dp o dip) como una unidad de medición que debes usar en lugar de píxeles (px).

Obtén más información sobre 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 para la densidad de cada pantalla. Por ejemplo, si tu app proporciona mapas de bits solo para pantallas de densidad media (mdpi), Android les aplica ajuste de escalamiento cuando se muestran en una pantalla de alta densidad, de modo que la imagen ocupe el mismo espacio físico en la pantalla. Esto puede provocar alteraciones de escalamiento visibles en los mapas de bits. Por lo tanto, tu app debe incluir mapas de bits alternativos a mayores resoluciones.

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

Gráficos vectoriales

Para tipos de imágenes simples (normalmente íconos), puedes evitar crear imágenes independientes para cada densidad usando gráficos vectoriales. Debido a que los gráficos vectoriales definen la ilustración con trazados de líneas geométricas en lugar de píxeles, se pueden diseñar del cualquier tamaño sin alteraciones de escalamiento.

Obtén más información sobre el uso de gráficos vectoriales.

Wear OS, TV, Auto y Sistema operativo Chrome

Las recomendaciones anteriores se aplican a todos los factores de forma de Android, pero si quieres compilar una app para dispositivos con Wear OS, Android TV, Android Auto o el SO Chrome, debes trabajar un poco más.

Cada uno de esos dispositivos tienen su modelo propio de interacción con el usuario que tu app debe incorporar. En algunos casos, como el de Wear OS, debes volver a concebir la experiencia del usuario de tu app y compilar una app específica para el dispositivo en cuestión. Para admitir dispositivos con el SO Chrome (como Google Pixelbook), podría ser necesario que apliques solo unas simples modificaciones a tu app existente para que admita la interacción de teclado y mouse y una pantalla mucho más grande.

Si deseas admitir estos dispositivos, consulta las siguientes guías para desarrolladores:

Incompatibilidad de pantalla

Si bien el marco de trabajo y las herramientas de Android te proporcionan todo lo que necesitas para que una app esté disponible para todas las configuraciones de pantalla, podrías de todas formas decidir que tu app no esté disponible en algunas configuraciones de pantalla por algún tipo de incompatibilidad.

En ese caso, puedes declarar que tu app admite solo pantallas específicas.