Passa ai contenuti principali

Android Studio - Layout varticale e orizzontale

In questo articolo vedremo come realizzare un layout diversa in base all'orientamento del dispositivo, se il dispositivo è in posizione verticale (portrait) il layout avrà un determinato aspetto, mentre se il dispositivo è in posizione orizzontale (landscape) il layout avrà un aspetto diverso.

Quando creiamo un nuovo progetto il layout sarà identico per i due tipi di orientamento, ma se vogliamo avere un layout diverso bisogna procedere in questo modo:

PROCEDIMENTO 1:
  1. Cliccare sul simbolo Orientation for Preview
  1. Cliccare poi su Create Landscape Variation
Ora all'interno della cartella layout verranno creati due file con lo stesso nome dell'originale ma con l'aggiunta della scritta (land) che sta ad indicare che quel file è per l'orientamento in modalità landscape (orizzontale)
  • activity_main.xml - layout principale in modalità portrait (verticale)
  • activity_main.xml (land) - layout principale in modalità landscape (orizzontale)

Ecco come si presenta il file activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textColor="#000000"
android:textSize="16sp"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
Ecco come si presenta il file activity_main.xml (land)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textColor="#000000"
android:textSize="16sp"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
Come si può vedere da questi due file è importante che l'id dei vari elementi del layout landscape sia uguale all'id degli elementi del layout portrait:
ad esempio l'oggetto Button con id=button è uguale nei due layout.

Aspetto in modalità portrait (verticale)

Aspetto in modalità landscape (orizzontale)


Download Project
Download file APK


PROCEDIMENTO 2:
  1. Selezionare la cartella layout
  1. Cliccare con il tasto destro
  2. Selezionare New
  3. Selezionare Layout resource file
Nella finestra che appare
inserire nel campo File name: il nome del layout (inserire lo stesso nome del layout principale)
Selezionare Orientation dalla lista Available qualifiers
Quindi premere i pulsante con le doppie frecce verso destra
Ora selezionare Landscape dal menù Screen orientation
Cliccare sul pulsante Finish per concludere la creazione del layout.
Il risultato sarà un file che si chiama activity_main.xml (land) come visto nel procedimento 1 ma con la differenza che questo file è completamente vuoto e quindi va riempito copiando il contenuto del file activity_main.xml all'interno del file appena creato activity_main.xml (land). Modificare poi il layout in modo da renderlo adatto all'orientamento orizzontale.

Attenzione: è importante che l'id dei vari elementi del layout landscape sia uguale all'id degli elementi del layout portrait


Vedi anche Layout telefono e tablet
Vedi anche Layout telefono/tablet verticale/orizzontale

Commenti

Post popolari in questo blog

Android Studio - Impostare lingua app

In questo articolo vedremo come poter selezionare la lingua all'interno della nostra app. Nel precedente articolo in cui si parlava del file string.xml , la lingua dell'app veniva selezionata automaticamente in base alle impostazioni del dispositivo, mentre qui vedremo come poter selezionare a proprio piacimento la lingua che dovrà avere la nostra app indipendentemente dall'impostazione del dispositivo. Per prima cosa creare il layout Ecco un esempio do come può essere il file activity_main.xml Ora creare le stringhe di testo all'interno del file string.xml Ora creare la traduzione del file string.xml nelle varie lingua come descritto in questo articolo Il risultato sarà una serie di file string.xml delle varie lingue impostate. Ora queste di seguito sono tre funzioni che servono per: selezione della lingua salvataggio della selezione nelle preferenze dell'app caricamento della lingua quando si avvia l'app Ecco come si presenta il file Main...

Android Studio - Rinominare il progetto

Rinominare il progetto Android Studio ATTENZIONE!: non eseguire questa procedura se l'app è stata pubblicata su Google Play Store Quando si vuole cambiare nome al progetto: nome cartella in cui è contenuto il progetto package name bisogna eseguire questi passaggi: Andare nella cartella dove è contenuto il progetto Creare una copia del progetto in questione Rinominare la cartella copiata con il nome dell'app (non usare spazi tra le parole) Ora è necessario dire ad Android Studio il nome del nuovo progetto  Aprire Android Studio Aprire il progetto creato in precedenza Una volta caricato il progetto cliccare Build Cliccare Clean Project Attendere che venga eseguito il processo di "pulitura" Cliccare ancora su Build Cliccare su Rebuild Project Attendere che venga ricostruito il progetto Ora aprire la cartella app fino a visualizzare la cartella java Cliccare sull'ingranaggio  Deselezionare la voce Compact Middle Packa...

Arduino - Lettura tensione potenziometro e display LCD

Leggere il valore di un poteziometro (parte 2) Oggi vedremo come leggere il valore in tensione di un potenziometro collegato al pin Analogico A0 di Arduino.