Orientación, relación de aspecto y capacidad de cambio de tamaño de la app

Las apps para Android se ejecutan en dispositivos de todo tipo: teléfonos, tablets, plegables, Chromebooks, automóviles, TVs y hasta XR. Para adaptarse a este entorno variado, tu app debe admitir todos los factores de forma y tamaños de pantalla de los dispositivos.

Android 16 (nivel de API 36) permite que las apps se adapten a diferentes factores de forma y tamaños de pantalla anulando las restricciones de la app para la orientación de la pantalla, la relación de aspecto y el cambio de tamaño. Las anulaciones se aplican a los dispositivos con un ancho más pequeño >= 600 dp, que define lo siguiente:

  • Tablets
  • Pantallas internas de dispositivos plegables de pantalla grande
  • Modo de ventanas de escritorio (en todos los factores de forma)

Las apps que se orientan al nivel de API 36 pueden cambiar de tamaño y entrar al modo multiventana (equivalente a resizeableActivity="true") si el ancho más pequeño de la pantalla es superior o igual a 600 dp.

La app tiene formato letterbox en un dispositivo con pantalla grande desplegada anterior a Android 16, pero es de pantalla completa cuando se orienta a Android 16. La app muestra más elementos de noticias cuando está en pantalla completa en lugar de en formato letterbox.
Figura 1: El feed de Developer News que antes se mostraba en formato letterbox en dispositivos de pantalla grande (izquierda) se ejecuta en pantalla completa cuando se segmenta para Android 16 (derecha).

Android 16 aplica un modelo coherente de diseño de apps adaptables que optimiza la experiencia del usuario respetando sus preferencias de orientación del dispositivo, relación de aspecto y tamaño de la pantalla.

Cambios

Se ignoran los siguientes atributos y APIs del manifiesto para las apps orientadas a Android 16 (nivel de API 36) en pantallas grandes:

Atributo o API Valores ignorados
screenOrientation portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape
resizeableActivity todos
minAspectRatio todos
maxAspectRatio todos
setRequestedOrientation()

getRequestedOrientation()
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape

Excepciones

Entre las excepciones a los cambios de Android 16, se incluyen las siguientes:

  • Pantallas más pequeñas que sw600dp (la mayoría de los teléfonos, dispositivos plegables y pantallas externas de dispositivos plegables de pantalla grande)

  • Juegos, según la marca android:appCategory

    Publica tu juego con Android App Bundles y la firma de apps de Play, lo que permite que Google Play administre la marca y proporcione los beneficios de los paquetes de aplicaciones automáticamente. Consulta también la descripción general del manifiesto de la app.

  • El usuario habilita el comportamiento predeterminado de la app en la configuración de la relación de aspecto

Inhabilitar

To opt out of the API level 36 behavior, declare the PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY manifest property.

To opt out for a specific activity, set the property in the <activity> element:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

To opt out for your entire app, set the property in the <application> element:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

Pruebas

Para probar si tu app se ve afectada por los cambios de Android 16, usa los emuladores de la serie Pixel Tablet y Pixel Fold en Android Studio y configura targetSdkPreview = "Baklava" en el archivo build.gradle del módulo de tu app.

También puedes usar el framework de compatibilidad de apps en tus dispositivos de prueba habilitando la marca UNIVERSAL_RESIZABLE_BY_DEFAULT (consulta Herramientas del framework de compatibilidad).

Puedes automatizar las pruebas con el framework de pruebas Espresso y las APIs de pruebas de Compose de Jetpack.

Problemas comunes

Es posible que las apps que restrinjan la orientación del dispositivo, la relación de aspecto o el cambio de tamaño de la app tengan problemas de visualización en Android 16, como diseños superpuestos.

Para proporcionar una experiencia del usuario óptima en teléfonos, plegables, tablets, Chromebooks, pantallas de automóviles o XR, compila tu app para que sea responsiva y adaptable:

  • Evita los componentes de la IU estirados: Es probable que los diseños diseñados para pantallas de teléfono estándar verticales no se adapten a otras relaciones de aspecto. Por ejemplo, los elementos de la IU que ocupan todo el ancho de la pantalla aparecerán estirados en orientación horizontal. Agrega un ancho máximo a los componentes para evitar que se estiren.

  • Habilita el desplazamiento de los diseños: Si los diseños no se desplazan, es posible que los usuarios no puedan acceder a botones ni a otros elementos de la IU que están fuera de la pantalla en orientación horizontal. Habilita los diseños de la app para que se desplacen y asegúrate de que se pueda acceder a todo el contenido, independientemente de la altura de la pantalla.

  • Garantizar la compatibilidad de la cámara en orientación vertical y horizontal: Las vistas previas del visor de la cámara que suponen una relación de aspecto y una orientación específicas en relación con el sensor de la cámara pueden generar vistas previas estiradas o invertidas en pantallas que no cumplen con los requisitos. Asegúrate de que los visores giren correctamente con los cambios de orientación. Habilita los visores para que se ajusten a las relaciones de aspecto de la IU que difieren de la relación de aspecto del sensor.

  • Preserva el estado durante los cambios de tamaño de la ventana: La eliminación de las restricciones de orientación y relación de aspecto puede provocar cambios frecuentes en el tamaño de la ventana de la app en respuesta a la forma en que los usuarios prefieren usar una app, por ejemplo, cuando rotan, pliegan o despliegan un dispositivo, o cuando cambian el tamaño de una app en el modo multiventana o de ventanas de escritorio. Los cambios de configuración, como los cambios de orientación y el cambio de tamaño de la ventana, provocan la recreación de actividades (de forma predeterminada). Para garantizar una experiencia del usuario óptima, preserva el estado de la app durante los cambios de configuración para que tu app retenga los datos (como la entrada de formularios) y los usuarios puedan mantener el contexto.

  • Usa clases de tamaño de ventana: Admite diferentes tamaños de ventana y relaciones de aspecto sin personalizaciones específicas del dispositivo. Supongamos que los tamaños de ventana cambiarán con frecuencia. Usa las clases de tamaño de ventana para caracterizar las dimensiones de la ventana y, luego, aplica un diseño adaptable adecuado.

  • Crea diseños responsivos: Dentro de las clases de tamaño de ventana, los diseños responsivos se ajustan a los cambios en las dimensiones de la pantalla para crear siempre una presentación óptima de la app.

Cronograma

  • Android 16 (2025): La compatibilidad con todas las orientaciones y relaciones de aspecto, y el cambio de tamaño de las apps, es la experiencia de referencia para dispositivos con pantallas grandes (ancho de pantalla más pequeño >= 600 dp) para apps que se orientan al nivel de API 36. Sin embargo, los desarrolladores pueden inhabilitar esta opción.

  • Versión de Android de 2026: La compatibilidad con todas las orientaciones y relaciones de aspecto, y el cambio de tamaño de las apps, será la experiencia de referencia para los dispositivos con pantalla grande (ancho de pantalla más pequeño >= 600 dp) para las apps que se orienten al nivel de API 37. Los desarrolladores no tendrán la opción de inhabilitar esta función.

Nivel de API objetivo Dispositivos aplicables Se permite la inhabilitación del desarrollador
36 (Android 16) Dispositivos con pantalla grande (ancho de pantalla más pequeño >= 600 dp)
37 (anticipada) Dispositivos con pantalla grande (ancho de pantalla más pequeño >= 600 dp) No

Las fechas límite para segmentar anuncios para niveles de API específicos son específicas de cada tienda de aplicaciones. Google Play requerirá que las apps se orienten al nivel de API 36 a partir de agosto de 2026 y al nivel de API 37 a partir de agosto de 2027.

Recursos adicionales