Autore Topic: [facile] Utilizzare stili e temi  (Letto 2265 volte)

Offline maku85

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +35
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia J
  • Play Store ID:
    MaKu
  • Sistema operativo:
    Windows 8.1
[facile] Utilizzare stili e temi
« il: 12 Settembre 2013, 18:23:33 CEST »
0
Livello di difficoltà: facile

In questo tutorial verrà spiegato l'uso degli stili e dei temi.

Gli stili e i temi sono praticamente la stessa cosa cioè un'insieme di proprietà(dal colore di un bottone alla dimensione di un testo) ma la differenza sostanziale è che
  • gli stili si applicano alle View
  • i temi si applicano a singole Activity o all'intera applicazione
Il vantaggio di entrambi è la possibilità di poter scrivere meno codice per oggetti che condividono le stesse proprietà e quando sarà necessario modificarlo sarà sufficiente farlo solo una volta anziché dover ripetere l'operazione per tutti gli oggetti.
Quindi anziché scrivere:

Codice (XML): [Seleziona]
<TextView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:textColor="#fff"
  android:textStyle="bold"
  android:textSize="20dp"
  android:text="Hello. world" />

sarà ad esempio sufficiente scrivere:

Codice (XML): [Seleziona]
<TextView
  style="@style/customStyle"
  android:text="Hello. world" />

Creare uno stile:
Definire uno stile è simile a definire una nuova stringa. Per farlo basta aprire il file res/values/styles.xml e all'interno dei tag <resource> definire il proprio <style>, identificandolo con un nome univoco, e i vari <item>che lo caratterizzano.
Ad esempio:

Codice (XML): [Seleziona]
<resources>
    <style name="customStyle">
      <item name="android:layout_width">match_parent</item>
      <item name="android:layout_height">wrap_content</item>
      <item name="android:textColor">#fff</item>
      <item name="android:textStyle">bold</item>
      <item name="android:textSize">20dp</item>
   </style>
</resources>

Per applicare lo stile sarà sufficiente dichiararlo tra le proprietà del View.
Ad esempio:

Codice (XML): [Seleziona]
<TextView
  style="@style/customStyle"
  android:text="Hello, world!" />

Semplice.
Ovviamente Android ha già degli style definiti. Per visualizzarli sarà sufficiente aprire il file platforms/android[versione_installata]/data/res/values/styles.xml
presente nella cartella dell'SDK installata sul proprio pc.
Per utilizzare uno degli stili predefiniti basterà anteporre al nome dello stile la stringa "@android:".
Ad esempio per applicare lo stile "TextAppearance.StatusBar.EventContent.Title":

Codice (XML): [Seleziona]
style="@android:style/TextAppearance.StatusBar.EventContent.Title"
Creare un tema:
I temi sono molto simili agli stili a parte qualche piccola differenza. Prima di iniziare a definire dei temi è necessario creare il file themes.xml nella cartella values del progetto(dove si trovano strings, styles, etc). Come prima sono definiti da android dei temi di default che si possono trovare nel file themes.xml nella stessa cartella, all'interno dell'SDK, dove si trovano gli stili di default. A differenza degli stili i temi si applicano sul file manifest e non sui layout.
Quindi per applicare un tema ad una sola activity si utilizzerà:

Codice (XML): [Seleziona]
<activity android:theme="@android:style/Theme.NoTitleBar"
per applicarlo all'intera applicazione:

Codice (XML): [Seleziona]
<application android:theme="@android:style/Theme.NoTitleBar"
Nell'esempio si sta applicando il tema di default che non mostra la barra del titolo così definito:

Codice (XML): [Seleziona]
<style name="Theme.NoTitleBar">
   <item name="android:windowNoTitle">true</item>
</style>

Oltre a definire dei temi personalizzati è possibile ridefinire i temi di default usando la stringa parent.
Ad esempio:

Codice (XML): [Seleziona]
<style name="PinkTheme" parent="android:style/Theme">
   <item name="android:textColorPrimary">#FF69B4</item>
</style>

E' stato praticamente implementato il tema di default "Theme" ma con un colore del testo diverso.

Bibliografia:
« Ultima modifica: 13 Settembre 2013, 17:36:54 CEST da maku85 »
- Il programmatore è colui che risolve in un modo incomprensibile un problema che non sapevi di avere -