¿Cómo puedo tener un diseño para paisaje y otro para retrato? Quiero asumir un ancho adicional y conservar el espacio vertical cuando el usuario gira el teléfono de lado.
¿Cómo puedo tener un diseño para paisaje y otro para retrato? Quiero asumir un ancho adicional y conservar el espacio vertical cuando el usuario gira el teléfono de lado.
Respuestas:
De forma predeterminada, los diseños /res/layout
se aplican tanto en vertical como en horizontal.
Si tienes por ejemplo
/res/layout/main.xml
puede agregar una nueva carpeta /res/layout-land
, copiarla main.xml
y hacer los ajustes necesarios.
Consulte también http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts y http://www.devx.com/wireless/Article/40792/1954 para obtener más opciones.
portrait
En la versión actual de Android Studio (v1.0.2), simplemente puede agregar un diseño horizontal haciendo clic en el botón en el editor visual que se muestra en la captura de pantalla a continuación. Seleccione "Crear variación de paisaje"
layout-land
carpeta. ¿Alguna idea de cómo llamar a un diseño desde allí? No se puede usar R.layout.layout_name
. Estoy tratando de configurar mis propios diseños manualmente después del cambio de configuración, gracias.
Los diseños en / res / layout se aplican tanto en vertical como en horizontal, a menos que especifique lo contrario. Supongamos que tenemos /res/layout/home.xml para nuestra página de inicio y queremos que tenga un aspecto diferente en los 2 tipos de diseño.
La forma más rápida para Android Studio 3.xx y Android Studio 4.xx
1.Vaya a la pestaña de diseño del diseño de la actividad.
2.En la parte superior, debe presionar el botón de orientación para vista previa , hay una opción para crear un diseño horizontal (verificar imagen), se creará una nueva carpeta como su archivo de diseño xml para esa orientación particular
Puede agrupar su diseño específico en la estructura de carpetas correcta de la siguiente manera.
layout-land-target_version
es decir
layout-land-19 // objetivo KitKat
Del mismo modo, puede crear sus diseños.
Espero que esto te ayudará
-19
sufijo? ¿Es útil de alguna manera?
Trataré de explicarlo en breve.
Primero, puede notar que ahora debe usar ConstraintLayout como lo solicitó google (consulte la biblioteca androix).
En su proyecto de estudio de Android, puede proporcionar diseños específicos de pantalla mediante la creación de res / layout / directorios adicionales. Uno para cada configuración de pantalla que requiere un diseño diferente.
Esto significa que debe usar el calificador de directorio en ambos casos:
Como resultado, aquí hay un ejemplo:
res/layout/main_activity.xml # For handsets
res/layout-land/main_activity.xml # For handsets in landscape
res/layout-sw600dp/main_activity.xml # For 7” tablets
res/layout-sw600dp-land/main_activity.xml # For 7” tablets in landscape
También puede usar el calificador con archivos de recursos de recursos utilizando dimens.xml.
res/values/dimens.xml # For handsets
res/values-land/dimens.xml # For handsets in landscape
res/values-sw600dp/dimens.xml # For 7” tablets
res / values / dimens.xml
<resources>
<dimen name="grid_view_item_height">70dp</dimen>
</resources>
res / values-land / dimens.xml
<resources>
<dimen name="grid_view_item_height">150dp</dimen>
</resources>
your_item_grid_or_list_layout.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content
<ImageView
android:id="@+id/image"
android:layout_width="0dp"
android:layout_height="@dimen/grid_view_item_height"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/border"
android:src="@drawable/ic_menu_slideshow">
</androidx.constraintlayout.widget.ConstraintLayout>
Fuente: https://developer.android.com/training/multiscreen/screensizes