Hai letto su come funzionano i layout lineari in Android. Metti alla prova le tue nuove abilità con queste sfide progressive che coinvolgono controlli di layout lineari e consolida la tua conoscenza del linguaggio di programmazione Java e della progettazione e dello sviluppo dell'interfaccia utente Android.
Per prepararti a questa sfida, ti consigliamo di iniziare con un'applicazione Android di base. Crea semplicemente un'applicazione Android in Eclipse e modifica la sua attività predefinita, in particolare il metodo onCreate (), per testare il codice che crei per questa sfida.
Se ciò che ti abbiamo appena chiesto è già troppo impegnativo, ti consigliamo di fare un passo indietro. Inizia con alcune esercitazioni Android, come Introduzione allo sviluppo Android o Android iniziale: Introduzione a Fortune Crunch. Una volta che hai imparato a configurare un progetto Android, torna e prova questi esercizi progressivi.
Questa è una sfida progressiva. Implica numerose abilità che gli sviluppatori Android devono padroneggiare per progettare e sviluppare applicazioni. Seguendo ognuno dei passaggi seguenti, che crescono in difficoltà, consoliderai la tua conoscenza dei layout lineari e del design dell'interfaccia utente Android in generale.
Ora che hai creato un progetto Android adatto, dovrai creare alcune risorse da utilizzare nell'interfaccia utente.
Creare:
Stumped creando risorse stringa o colore? Dai un'occhiata a questo tutorial sulla formattazione delle stringhe.
Inizia creando un nuovo file di risorse di layout chiamato rainbow.xml. All'interno di questo file XML, aggiungi un controllo di layout lineare orientato verticalmente che riempie l'intero schermo. Successivamente, aggiungi sette controlli TextView come controlli figlio all'interno del layout lineare: uno per ciascun colore nello spettro. Impostare il testo di ciascun controllo TextView sulla stringa di colore appropriata nello spettro e il colore di sfondo sul valore di colore appropriato. Inoltre, imposta l'attributo layout_width di ogni controllo a fill_parent e il relativo attributo layout_height a wrap_content.
Se hai completato correttamente questo passaggio, il tuo layout dovrebbe assomigliare a questo:
In questo passaggio, concentrerai l'attenzione sulle varie proprietà di gravità disponibili per i controlli, inclusi quelli utilizzati dal layout lineare.
Aggiorna la risorsa di layout rainbow.xml con le seguenti modifiche: centra i controlli TextView sullo schermo e centra il testo all'interno di ciascun controllo. SUGGERIMENTO: Ciò richiederà due diversi attributi XML da impostare, uno sul layout lineare e uno su ciascun controllo TextView.
Se hai completato correttamente questo passaggio, il tuo layout dovrebbe assomigliare a questo:
I layout lineari sono molto flessibili. Se si apportano modifiche ai controlli figlio all'interno di un layout lineare genitore, il layout si adegua, quando possibile.
Il testo di controllo TextView è piccolo e un po 'difficile da leggere. Inizia modificando i controlli TextView. Aggiorna la risorsa di layout rainbow.xml con le seguenti modifiche: Innanzitutto, aggiungi un valore di dimensione chiamato textsize. In questo caso, lo impostiamo su 22dp.
Ora il tuo layout dovrebbe assomigliare a questo:
Nota come il layout lineare è abbastanza flessibile da contenere i controlli TextView più grandi, ma non utilizzano ancora lo spazio disponibile sullo schermo e le bande nere esistono ancora.
SUGGERIMENTO AVANZATO: è possibile prendere in considerazione la possibilità di creare valori di risorse di dimensioni alternative da utilizzare con dimensioni dello schermo diverse. Ad esempio, per gli schermi più grandi, una dimensione del testo di 22 dp sembra piacevole, mentre su schermi più piccoli, una dimensione del testo di 14 dp o 16 dp potrebbe essere più appropriata. Per ulteriori informazioni sulla creazione di risorse alternative, vedere Supporting Multiple Screens.
Notate tutto quello spazio nero inutilizzato? In questo passaggio, concentrerai la tua attenzione sull'utilizzo efficace dell'intero schermo. I controlli TextView all'interno del layout lineare hanno dimensioni appropriate, ma potrebbero crescere leggermente per utilizzare lo spazio nero non utilizzato.
Vogliamo che i controlli TextView si espandano in tutto lo spazio disponibile, indipendentemente dall'orientamento del dispositivo o dalle dimensioni dello schermo del dispositivo.
Esegui questa operazione regolando gli attributi layout_weight per i controlli figlio all'interno del layout lineare per dare a ciascun controllo i limiti specifici in cui crescere. L'efficacia dell'attributo layout_weight è più evidente quando il dispositivo si trova in un determinato orientamento: per i layout lineari verticali, vedrai come il peso funziona meglio quando il dispositivo è in modalità verticale, mentre per i layout lineari orizzontali, vedrai come il peso funziona meglio in modalità orizzontale.
Innanzitutto, prova a impostare pesi che consentano a ciascuna area di colore di TextView di avere uguale area sullo schermo. Suggerimento: pesi di 0,14 per 5 controlli e 0,15 per 2 controlli sommano a 1,0.
Se hai configurato correttamente i pesi dei tuoi controlli, lo schermo dovrebbe apparire in questo modo:
Successivamente, prova a impostare i pesi su qualcosa che permetta ad ogni banda di controllo di TextView di aumentare gradualmente l'area sullo schermo in modo che la banda RED sia l'area più piccola e la banda VIOLET sia la più grande. SUGGERIMENTO: una buona distribuzione è: 0,08, 0,10, 0,12, 0,14, 0,16, 0,18, 0,22.
Se hai completato correttamente questo passaggio, il tuo layout dovrebbe assomigliare a questo:
Solo per i calci, passa alla modalità orizzontale e controlla come appare lo stesso layout:
Se hai trovato le sfide precedenti ragionevolmente semplici, considera la seguente sfida bonus: ricrea la risorsa di layout finale (con i pesi progressivi sui singoli controlli TextView) a livello di codice in Java, anziché in una risorsa XML di layout.
Dovrai commentare la chiamata setContentView () nel metodo onCreate () della tua attività e creare il tuo LinearLayout, come discusso in Progettazione dell'interfaccia utente Android: layout lineari.
Ecco alcuni suggerimenti per implementare il layout arcobaleno a livello di codice:
Troverai la soluzione Java nel download fornito con questo tutorial.
I progettisti di interfacce utente Android utilizzano sempre layout lineari per visualizzare i controlli in modo ordinato orizzontalmente o verticalmente. È possibile controllare dove vengono visualizzati i controlli figlio del layout utilizzando l'attributo gravità del layout lineare. È possibile controllare la quantità di spazio assegnata a ciascun controllo figlio utilizzando l'attributo layout_weight.
Buona fortuna!
Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams TeachYourself Sviluppo di applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.