Cuando se gira el dispositivo, Android recarga la actividad y busca el layout más adecuado según la orientación actual. Si solo existe un layout (el de portrait), la interfaz puede quedar mal distribuida en horizontal.

Actividad con un TextView y botones en portrait

La misma actividad al girar a landscape sin layout alternativo

Crear un layout alternativo para landscape

Paso 1: Crear la carpeta layout-land

En la vista de proyecto, dentro de la carpeta res/, creamos una nueva carpeta llamada layout-land. Android la utilizará automáticamente cuando el dispositivo esté en orientación horizontal.

Crear carpeta layout-land en res/

Estructura de carpetas con layout-land creada

Paso 2: Copiar el XML del layout

Copiamos el fichero XML del layout vertical (activity_main.xml) a la nueva carpeta layout-land.

Copiar el fichero XML al layout-land

Paso 3: Modificar el layout para landscape

Modificamos el layout copiado para aprovechar mejor el espacio horizontal. Por ejemplo, usando un TableLayout con stretchColumns="*" para distribuir los botones en dos columnas.

Modificar el layout en modo landscape

Layout landscape con botones en dos columnas

Previsualización del layout landscape en el editor

Resultado

Android selecciona automáticamente el layout correcto sin necesidad de escribir código adicional: usa layout/ para portrait y layout-land/ para landscape.

Resultado final en portrait

Resultado final en landscape

Convenciones de carpetas

Las carpetas de recursos alternativos pueden combinar calificadores de tamaño y orientación:

Carpeta Descripción
layout-small Pantallas pequeñas
layout-normal Pantallas normales
layout-large Pantallas grandes
layout-xlarge Pantallas extra grandes
layout-land Orientación landscape
layout-large-land Pantallas grandes en landscape

Tabla de convenciones de carpetas

Ejemplo de carpetas en el proyecto

Vista final del proyecto con recursos alternativos