Android - Progettazione dell'interfaccia utente
In questo capitolo esamineremo i diversi componenti dell'interfaccia utente dello schermo di Android. Questo capitolo tratta anche i suggerimenti per migliorare la progettazione dell'interfaccia utente e spiega anche come progettare un'interfaccia utente.
Componenti dello schermo dell'interfaccia utente
Una tipica interfaccia utente di un'applicazione Android è costituita dalla barra delle azioni e dall'area del contenuto dell'applicazione.
- Barra delle azioni principali
- Controllo della vista
- Area del contenuto
- Barra delle azioni divisa
Questi componenti sono stati mostrati anche nell'immagine qui sotto:
Comprensione dei componenti dello schermo
L'unità di base dell'applicazione Android è l'attività. Un'interfaccia utente è definita in un file xml. Durante la compilazione, ogni elemento nell'XML viene compilato in una classe GUI Android equivalente con attributi rappresentati da metodi.
Visualizza e ViewGroups
Un'attività è costituita da visualizzazioni. Una vista è solo un widget che appare sullo schermo. Potrebbe essere un pulsante, ecc. Una o più viste possono essere raggruppate in una GroupView. L'esempio di ViewGroup include i layout.
Tipi di layout
Esistono molti tipi di layout. Alcuni dei quali sono elencati di seguito:
- Layout lineare
- Layout assoluto
- Layout della tabella
- Layout del frame
- Layout relativo
Layout lineare
Il layout lineare è ulteriormente suddiviso in layout orizzontale e verticale. Significa che può disporre le viste in una singola colonna o in una singola riga. Ecco il codice del layout lineare (verticale) che include una vista di testo.
<?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:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello” />
</LinearLayout>
AbsoluteLayout
AbsoluteLayout consente di specificare la posizione esatta dei suoi figli. Può essere dichiarato così.
<AbsoluteLayout
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
xmlns:android=”http://schemas.android.com/apk/res/android” >
<Button
android:layout_width=”188dp”
android:layout_height=”wrap_content”
android:text=”Button”
android:layout_x=”126px”
android:layout_y=”361px” />
</AbsoluteLayout>
TableLayout
Il TableLayout raggruppa le visualizzazioni in righe e colonne. Può essere dichiarato così.
<TableLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_height=”fill_parent”
android:layout_width=”fill_parent” >
<TableRow>
<TextView
android:text=”User Name:”
android:width =”120dp”
/>
<EditText
android:id=”@+id/txtUserName”
android:width=”200dp” />
</TableRow>
</TableLayout>
RelativeLayout
RelativeLayout consente di specificare come le visualizzazioni figlie sono posizionate l'una rispetto all'altra e può essere dichiarato in questo modo.
<RelativeLayout
android:id=”@+id/RLayout”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
xmlns:android=”http://schemas.android.com/apk/res/android” >
</RelativeLayout>
FrameLayout
FrameLayout è un segnaposto sullo schermo che puoi utilizzare per visualizzare una singola visualizzazione. Può essere dichiarato così.
<?xml version=”1.0” encoding=”utf-8”?>
<FrameLayout
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignLeft=”@+id/lblComments”
android:layout_below=”@+id/lblComments”
android:layout_centerHorizontal=”true” >
<ImageView
android:src = “@drawable/droid”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</FrameLayout>
Oltre a questi attributi, esistono altri attributi comuni a tutte le viste e ai ViewGroup. Sono elencati di seguito:
Suor n | Visualizza e descrizione |
---|---|
1 |
layout_width Specifica la larghezza di View o ViewGroup |
2 |
layout_height Specifica l'altezza di View o ViewGroup |
3 |
layout_marginTop Specifica lo spazio aggiuntivo sul lato superiore di View o ViewGroup |
4 |
layout_marginBottom Specifica lo spazio aggiuntivo sul lato inferiore di View o ViewGroup |
5 |
layout_marginLeft Specifica lo spazio aggiuntivo sul lato sinistro di View o ViewGroup |
6 |
layout_marginRight Specifica lo spazio aggiuntivo sul lato destro di View o ViewGroup |
7 |
layout_gravity Specifica come vengono posizionate le viste figlio |
8 |
layout_weight Specifica la quantità di spazio aggiuntivo nel layout da allocare alla vista |
Unità di misura
Quando specifichi la dimensione di un elemento su un'interfaccia utente Android, dovresti ricordare le seguenti unità di misura.
Suor n | Unità e descrizione |
---|---|
1 |
dp Pixel indipendente dalla densità. 1 dp equivale a un pixel su uno schermo a 160 dpi. |
2 |
sp Pixel indipendente dalla scala. È simile a dp ed è consigliato per specificare le dimensioni dei caratteri |
3 |
pt Punto. Un punto è definito come 1/72 di pollice, in base alle dimensioni fisiche dello schermo. |
4 |
px Pixel. Corrisponde ai pixel effettivi sullo schermo |
Densità dello schermo
Suor n | Densità e DPI |
---|---|
1 |
Low density (ldpi) 120 dpi |
2 |
Medium density (mdpi) 160 dpi |
3 |
High density (hdpi) 240 dpi |
4 |
Extra High density (xhdpi) 320 dpi |
Ottimizzazione dei layout
Ecco alcune delle linee guida per creare layout efficienti.
- Evita annidamenti non necessari
- Evita di utilizzare troppe visualizzazioni
- Evita l'annidamento profondo