Introduzione ai layout XML

Questo tutorial ti insegnerà i fondamenti della costruzione di layout dell'interfaccia Android con XML. Continuare a leggere!

Quando inizi a sviluppare app per Android utilizzando Eclipse e il plug-in ADT, il potente editor di layout grafico di Eclipse è un ottimo punto di partenza per la progettazione visiva dell'interfaccia utente. Tuttavia, questo approccio "ciò che vedi è ciò che ottieni" ha i suoi limiti e ad un certo punto dovrai passare a XML.

Uno dei principali vantaggi di dichiarare la tua interfaccia utente in XML è la capacità di mantenere separate l'interfaccia utente e il comportamento della tua app, dandoti la libertà di modificare la presentazione dell'app senza interromperne la funzionalità sottostante.

In questo articolo, ti mostrerò come progettare un layout XML di base da zero, includendo la definizione dell'elemento root, specificando i parametri di altezza e larghezza e aggiungendo alcuni elementi dell'interfaccia utente di base. Infine, userò questo layout di base per dimostrare alcune opzioni XML avanzate, come allocare quantità diverse di spazio a oggetti diversi e iniziare con le risorse stringa.

Nota: In Android, i layout XML devono essere memorizzati nella directory res / layout con l'estensione .xml.


Parte 1: Nozioni di base sul layout XML

Innanzitutto, ci abitueremo all'XML creando un'interfaccia utente Android molto semplice che utilizza il gruppo di visualizzazione LinearLayout per contenere un elemento casella di controllo. Apri il file res / layouts / activity_main.xml e cominciamo.


Passaggio 1: specificare l'elemento principale

L'interfaccia utente deve contenere un singolo elemento radice che funge da contenitore visivo per tutti gli altri elementi. L'elemento radice può essere un ViewGroup (i.e LinearLayout, ListView, GridView) un elemento di unione o una vista, ma deve contenere lo spazio dei nomi XML. In questo esempio, userò LinearLayout, un ViewGroup che allinea tutti i bambini in una direzione specificata.

Un LinearLayout consiste in tag XML di apertura e chiusura:

 < LinearLayout… >

Nella scheda di apertura, è necessario definire lo spazio dei nomi XML, che è uno standard raccomandato dal W3C. Definire lo spazio dei nomi XML in Android è facile, basta inserire il seguente codice e URL come parte del tag di apertura LinearLayout:

 xmlns: Android = "http://schemas.android.com/apk/res/android"

Passaggio 2: larghezza e altezza

Quindi, specificare i parametri width e height per l'elemento root. Nella maggior parte dei casi, utilizzerai il valore "fill_parent" per l'elemento root, in quanto ciò richiede di occupare l'intero schermo del dispositivo.

Immettere il seguente codice XML per i parametri altezza / larghezza:

 android: layout_width = "fill_parent" android: layout_height = "fill_parent">

Il tuo XML dovrebbe ora assomigliare a questo:

  

Passaggio 3: creazione di una casella di controllo

È ora di aggiungere qualcosa a quella tela bianca! Inserisci il tag di apertura per la tua casella di controllo. Poiché questo è un elemento dell'interfaccia utente, è richiesto un ulteriore codice XML:

1) Identifica il tuo oggetto

Eclipse utilizza un ID intero per identificare diversi elementi dell'interfaccia utente all'interno di un albero. Questo dovrebbe essere referenziato come una stringa, usando l'attributo 'id' e la seguente sintassi:

Android: id = "@ + id / nome"

In questo esempio, faremo riferimento a questo elemento dell'interfaccia utente come "CheckBox:"

 Android: id = "@ + id / casella di controllo"

2) Parametri larghezza / altezza: wrap_content

Ancora una volta, dovrai inserire i parametri altezza / larghezza. Impostando questo attributo su "wrap_content" verrà visualizzato l'elemento corrispondente abbastanza grande da includere il ridimensionamento del contenuto. Possiamo riutilizzare la struttura di sintassi altezza / larghezza da precedenti, sostituendo 'fill_parent' con 'wrap_content:'

 android: layout_width = "wrap_content" android: layout_height = "wrap_content"

3) Imposta il tuo testo

Infine, dovrai specificare il testo che dovrebbe apparire accanto alla casella di controllo. Impostiamo la casella di controllo per visualizzare "Sì":

 android: text = "Yes" />

Il tuo XML dovrebbe ora assomigliare a questo:

  

Esegui il tuo codice nell'emulatore Android per vedere il tuo XML in azione!


Parte 2: crea la tua seconda interfaccia utente con XML

Nella seconda parte di questo tutorial, vedremo alcuni XML più avanzati per mettere a punto l'interfaccia utente. Creeremo un layout composto da due pulsanti e quindi utilizzeremo l'attributo 'peso' per modificare la percentuale di spazio del layout allocata a ciascuno prima di ricoprire brevemente le basi delle risorse stringa.


Passaggio 1: crea il tuo layout

Il primo passo è creare le barebone del tuo layout. Riutilizzeremo l'elemento root LinearLayout dell'esempio precedente, insieme ai parametri width / height e, ovviamente, allo spazio dei nomi XML:

  

Passaggio 2: crea i pulsanti

Per creare il primo pulsante, aggiungi il tag di apertura 'Pulsante' e l'ID intero utilizzando il nome dell'elemento 'button1.'

 

Passaggio 3: controlla l'emulatore

Per vedere in anteprima come apparirà su un dispositivo Android reale, avvia l'emulatore e dai un'occhiata!


Parte 3: Opzioni XML avanzate

Ora hai la tua interfaccia utente di base, useremo un codice XML più avanzato per perfezionare questo semplice layout.

Imposta Layout_Weight

L'attributo 'android: layout_weight' consente di specificare il rapporto delle dimensioni tra più elementi dell'interfaccia utente. In parole semplici, maggiore è il valore del peso, maggiore è la proporzione di spazio allocato e più l'elemento dell'interfaccia utente si espande. Se non si specifica un peso, Eclipse assumerà il peso per tutti gli articoli pari a zero e dividerà lo spazio disponibile in parti uguali. Lo spazio può essere impostato con il seguente XML:

 Android: "?" layout_weight =

In questo esempio, assegneremo 'button1' con valore 1 e 'button2' con valore 2.

Nota, questa è puramente un'aggiunta; non è necessario modificare alcun codice esistente.

  

L'XML sopra creerà due pulsanti di dimensioni diverse:

Un'introduzione alle risorse di stringa

Una risorsa stringa può fornire stringhe di testo per l'applicazione e i file di risorse. Nella maggior parte dei casi, è buona norma memorizzare tutte le stringhe nella cartella dedicata "strings.xml", che può essere trovata da:

1) Apertura della cartella 'Res' nel project explorer di Eclipse.

2) Aprire la cartella "Valori".

3) Aprire il file "strings.xml".

Per creare una nuova stringa nel tuo progetto Android:

1) Apri il file "strings.xml" e seleziona "Aggiungi".

2)Seleziona "String" dall'elenco e fai clic su "Ok".

3) Seleziona la stringa appena creata dal menu "Elementi risorse".

4) Nel menu "Attributi per stringa" a destra, inserisci un nome per la stringa e un valore (nota, l'attributo "nome" viene utilizzato per fare riferimento al valore stringa e il valore stringa è i dati che verranno visualizzati. )

In questo esempio, daremo alla stringa il nome di "accetta" e inseriremo il valore "Accetto i termini e le condizioni".

5) Salva questa nuova risorsa stringa.

6) Apri il tuo file "activity_main.xml". Trova la sezione di codice che definisce 'button1' e modifica l'attributo 'android: text' per chiamare questa nuova risorsa stringa. Chiamando una risorsa stringa, utilizza la seguente sintassi:

Android: text = "@ string / nome-di-risorsa"

Quindi, in questo esempio, il codice sarà:

 Android: text = "@ string / d'accordo"

Per facilitare la visualizzazione dell'output, elimina "button2". Il tuo codice dovrebbe ora apparire come questo:

  

Controlla l'output visivo del tuo codice: il testo dovrebbe essere stato sostituito con il valore della tua stringa "d'accordo".

Questa è una stringa molto semplice, senza attributi di stile o formattazione aggiuntivi. Se vuoi saperne di più sulle risorse stringa, i documenti ufficiali di Android sono una grande fonte di ulteriori informazioni.


Conclusione

In questo articolo, abbiamo trattato gli elementi essenziali XML della creazione di un elemento radice per il tuo layout e abbiamo codificato alcuni elementi dell'interfaccia utente di base, prima di passare a un XML più avanzato che ti offre un maggiore controllo sull'interfaccia utente. Ora dovresti essere pronto a creare le tue interfacce utente semplici usando XML!