Utilizzare stili e temi nelle applicazioni Android, separando le regole di stile dagli elementi, si favorisce la manutenibilità del codice e favorire il riutilizzo del codice
In Android per stili si intendono tutte le proprietà che consentono di specificare l’aspetto di una View o una finestra. Si tratta di proprietà come l’altezza, il padding, il colore del font e la sua grandezza. Gli stili vengono definiti in XML in modo da separare la parte grafica dal resto come avviene nello sviluppo di applicazioni web con i file CSS in cui si separata la struttura del codice dalle regole di stile applicate. Ad esempio, invece di scrivere:
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:typeface="arial"
android:text="@string/name" />
In Android andando a definire le regole di stile in un file separato si incrementa la manutenibilità del codice e si rende riutilizzabile lo stile. Ad esempio, uno stile con le regole precedenti di nome MyTextViewStyle sarà applicabile agli elementi in questo modo:
style="@style/MyTextViewStyle">
android:text="@string/name" />
Il file deve trovarsi in res/values/ di tipo .xml e sarà definito tramite il tag <style> in cui saranno inserite le varie proprietà della classe tramite il tag <item>. Dall’esempio precedente il file di stile sarà così definito:
<resources>
<style name="MyTextViewStyle" parent="@android:style/TextAppearance.Medium">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:typeface">arial</item>
</style>
</resources>
L’attributo parent è opzionale e consente di specificare uno stile da cui ereditare le proprietà specificando l’id dello stile. Avendo definito uno stile in un file, come anticipato in precedenza possiamo applicarlo a più elementi, ad esempio invece di scrivere:
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:typeface="arial"
android:text="@string/title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:typeface="arial"
android:text="@string/message" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:typeface="arial"
android:text="@string/note" />
Possiamo utilizzare lo stile in questo modo:
style="@style/MyTextViewStyle"
android:text="@string/title" />
<TextView
style="@style/MyTextViewStyle"
android:text="@string/message" />
<TextView
style="@style/MyTextViewStyle"
android:text="@string/note" />
In modo molto simile è possibile applicare un tema a tutta l’applicazione. Ad esempio:
...
</application>
Per applicare un tema ad un’activity scriveremo:
...
</activity>
Android mette a disposizione alcuni temi che possono essere utilizzati nelle proprie applicazioni come Theme.Dialog e Theme.Translucent. Per maggiori informazioni vi rimando alla guida ufficiale di Google.
Indice | Lezione Precedente – Lezione Successiva |