Android - Layout dell'interfaccia utente
Il blocco predefinito di base per l'interfaccia utente è un file Viewoggetto che viene creato dalla classe View e occupa un'area rettangolare sullo schermo ed è responsabile del disegno e della gestione degli eventi. View è la classe base per i widget, che vengono utilizzati per creare componenti dell'interfaccia utente interattiva come pulsanti, campi di testo, ecc.
Il ViewGroup è una sottoclasse di View e fornisce un contenitore invisibile che contiene altre viste o altri ViewGroup e ne definisce le proprietà di layout.
Al terzo livello abbiamo diversi layout che sono sottoclassi della classe ViewGroup e un layout tipico definisce la struttura visiva per un'interfaccia utente Android e può essere creato in fase di esecuzione utilizzando View/ViewGroup oggetti oppure puoi dichiarare il tuo layout usando un semplice file XML main_layout.xml che si trova nella cartella res / layout del tuo progetto.
Parametri di layout
Questo tutorial è più sulla creazione della tua GUI in base ai layout definiti nel file XML. Un layout può contenere qualsiasi tipo di widget come pulsanti, etichette, caselle di testo e così via. Di seguito è riportato un semplice esempio di file XML con LinearLayout -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a Button" />
<!-- More GUI components go here -->
</LinearLayout>
Una volta creato il layout, è possibile caricare la risorsa di layout dal codice dell'applicazione, nell'implementazione del callback Activity.onCreate () come mostrato di seguito:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Tipi di layout Android
Esistono numerosi layout forniti da Android che utilizzerai in quasi tutte le applicazioni Android per fornire una visualizzazione, un aspetto e un aspetto diversi.
Suor n | Layout e descrizione |
---|---|
1 | Layout lineare LinearLayout è un gruppo di viste che allinea tutti i figli in una singola direzione, verticalmente o orizzontalmente. |
2 | Layout relativo RelativeLayout è un gruppo di visualizzazioni che mostra le visualizzazioni figlio in posizioni relative. |
3 | Layout della tabella TableLayout è una visualizzazione che raggruppa le visualizzazioni in righe e colonne. |
4 | Layout assoluto AbsoluteLayout consente di specificare la posizione esatta dei suoi figli. |
5 | Layout del frame FrameLayout è un segnaposto sullo schermo che puoi utilizzare per visualizzare una singola visualizzazione. |
6 | Visualizzazione elenco ListView è un gruppo di viste che mostra un elenco di elementi scorrevoli. |
7 | Vista a griglia GridView è un ViewGroup che visualizza gli elementi in una griglia bidimensionale scorrevole. |
Attributi di layout
Ogni layout ha una serie di attributi che definiscono le proprietà visive di quel layout. Ci sono pochi attributi comuni tra tutti i layout e sono altri attributi specifici di quel layout. Di seguito sono riportati gli attributi comuni e verranno applicati a tutti i layout:
Suor n | Attributo e descrizione |
---|---|
1 | android:id Questo è l'ID che identifica in modo univoco la vista. |
2 | android:layout_width Questa è la larghezza del layout. |
3 | android:layout_height Questa è l'altezza del layout |
4 | android:layout_marginTop Questo è lo spazio extra sul lato superiore del layout. |
5 | android:layout_marginBottom Questo è lo spazio extra sul lato inferiore del layout. |
6 | android:layout_marginLeft Questo è lo spazio extra sul lato sinistro del layout. |
7 | android:layout_marginRight Questo è lo spazio extra sul lato destro del layout. |
8 | android:layout_gravity Specifica come vengono posizionate le viste figlio. |
9 | android:layout_weight Specifica quanto spazio aggiuntivo nel layout deve essere allocato alla vista. |
10 | android:layout_x Questo specifica la coordinata x del layout. |
11 | android:layout_y Questo specifica la coordinata y del layout. |
12 | android:layout_width Questa è la larghezza del layout. |
13 | android:paddingLeft Questa è la spaziatura interna sinistra riempita per il layout. |
14 | android:paddingRight Questa è la giusta imbottitura riempita per il layout. |
15 | android:paddingTop Questa è l'imbottitura superiore riempita per il layout. |
16 | android:paddingBottom Questa è l'imbottitura inferiore riempita per il layout. |
Qui larghezza e altezza sono le dimensioni del layout / vista che possono essere specificate in termini di dp (Density-independent Pixels), sp (Scale-independent Pixels), pt (Points che è 1/72 di pollice), px ( Pixel), mm (Millimetri) e infine in (pollici).
Puoi specificare larghezza e altezza con misure esatte ma più spesso, utilizzerai una di queste costanti per impostare la larghezza o l'altezza -
android:layout_width=wrap_content dice alla tua vista di ridimensionarsi alle dimensioni richieste dal suo contenuto.
android:layout_width=fill_parent dice alla tua vista di diventare grande quanto la sua vista principale.
L'attributo Gravity gioca un ruolo importante nel posizionamento dell'oggetto vista e può assumere uno o più (separati da '|') dei seguenti valori costanti.
Costante | Valore | Descrizione |
---|---|---|
superiore | 0x30 | Spingere l'oggetto nella parte superiore del suo contenitore, senza modificarne le dimensioni. |
parte inferiore | 0x50 | Spingere l'oggetto sul fondo del suo contenitore, senza modificarne le dimensioni. |
sinistra | 0x03 | Spingere l'oggetto a sinistra del suo contenitore, senza modificarne le dimensioni. |
giusto | 0x05 | Spingere l'oggetto a destra del suo contenitore, senza modificarne le dimensioni. |
center_vertical | 0x10 | Posiziona l'oggetto al centro verticale del suo contenitore, senza modificarne le dimensioni. |
fill_vertical | 0x70 | Se necessario, aumenta la dimensione verticale dell'oggetto in modo che riempia completamente il suo contenitore. |
center_horizontal | 0x01 | Posiziona l'oggetto al centro orizzontale del suo contenitore, senza modificarne le dimensioni. |
fill_horizontal | 0x07 | Aumenta la dimensione orizzontale dell'oggetto se necessario in modo che riempia completamente il suo contenitore. |
centro | 0x11 | Posiziona l'oggetto al centro del suo contenitore sia sull'asse verticale che su quello orizzontale, senza modificarne le dimensioni. |
riempire | 0x77 | Aumenta la dimensione orizzontale e verticale dell'oggetto, se necessario, in modo che riempia completamente il suo contenitore. |
clip_vertical | 0x80 | Opzione aggiuntiva che può essere impostata per avere i bordi superiore e / o inferiore del figlio ritagliati ai limiti del suo contenitore. La clip sarà basata sulla gravità verticale: una gravità superiore taglierà il bordo inferiore, una gravità inferiore taglierà il bordo superiore e nessuno dei due taglierà entrambi i bordi. |
clip_horizontal | 0x08 | Opzione aggiuntiva che può essere impostata per avere i bordi sinistro e / o destro del bambino ritagliati ai limiti del suo contenitore. La clip sarà basata sulla gravità orizzontale: una gravità sinistra taglierà il bordo destro, una gravità destra taglierà il bordo sinistro e nessuno dei due taglierà entrambi i bordi. |
inizio | 0x00800003 | Spinge l'oggetto all'inizio del suo contenitore, senza modificarne le dimensioni. |
fine | 0x00800005 | Spingere l'oggetto alla fine del suo contenitore, senza modificarne le dimensioni. |
Visualizza identificazione
A un oggetto vista può essere assegnato un ID univoco che identificherà la vista in modo univoco all'interno dell'albero. La sintassi per un ID, all'interno di un tag XML è:
android:id="@+id/my_button"
Di seguito è riportata una breve descrizione dei segni @ e + -
Il simbolo at (@) all'inizio della stringa indica che il parser XML deve analizzare ed espandere il resto della stringa ID e identificarla come risorsa ID.
Il simbolo più (+) significa che si tratta di un nuovo nome di risorsa che deve essere creato e aggiunto alle nostre risorse. Per creare un'istanza dell'oggetto vista e catturarla dal layout, utilizzare quanto segue:
Button myButton = (Button) findViewById(R.id.my_button);