AndroidProgrammazione

Color State Resource

Un ColorStateList è un oggetto che è possibile definire in XML che è possibile applicare come colore, ma in realtà cambierà i colori, a seconda dello stato dell’oggetto View a cui è applicato. Ad esempio, un widget Button può esistere in uno dei diversi stati (premuto, focalizzato o nessuno dei due) e, utilizzando un elenco di stati colore, è possibile fornire un colore diverso durante ogni stato.

È possibile descrivere l’elenco di stati in un file XML. Ogni colore è definito in un elemento <item> all’interno di un singolo elemento <selector>. Ogni <elemento> usa vari attributi per descrivere lo stato in cui dovrebbe essere usato.

Durante ogni cambio di stato, l’elenco di stati viene spostato dall’alto verso il basso e viene utilizzato il primo elemento corrispondente allo stato corrente: la selezione non si basa sulla “corrispondenza migliore”, ma semplicemente sul primo elemento che soddisfa i criteri minimi del stato. elementi:

  • <selector> – (necessario) questo deve essere l’elemento principale. Contiene uno o più elementi <item>; attributi:

    • xmlns:android (String necessario) definisce lo spazio dei nomi XML, che deve essere “http://schemas.android.com/apk/res/android“;

  • <item> – definisce un colore da usare durante determinati stati, come descritto dai suoi attributi. Deve essere un elemento figlio di un elemento <selector>; attributi:

    • android:color – (colore esadecimale necessario) il colore è specificato con un valore RGB e un canale alfa opzionale.

      Il valore inizia sempre con un carattere cancelletto (#) e quindi seguito dalle informazioni Alpha-Red-Greene-Blue in uno dei seguenti formati: #RGB#ARGB#RRGGBB#AARRGGBB;

    • android:state_pressed – (Boolean) “true” se questo elemento deve essere utilizzato quando viene premuto l’oggetto; “false” se questo elemento deve essere utilizzato nello stato predefinito, non premuto;

    • android:state_focused – (Boolean) “true” se questo elemento deve essere usato quando l’oggetto è focalizzato; “false” se questo elemento deve essere utilizzato nello stato di default, non a fuoco;

    • android:state_selected – (Boolean) “true” se questo elemento deve essere usato quando l’oggetto è selezionato; “false” se questo elemento deve essere utilizzato quando l’oggetto non è selezionato;

    • android:state_checkable – (Boolean) “true” se questo elemento deve essere usato quando l’oggetto è controllabile; “false” se questo elemento deve essere utilizzato quando l’oggetto non è controllabile;

    • android:state_checked – (Boolean) “true” se questo elemento deve essere usato quando l’oggetto è selezionato; “false” se deve essere usato quando l’oggetto non è spuntato.

    • android:state_enabled – (Boolean) “true” se questo elemento deve essere usato quando l’oggetto è abilitato; “false” se deve essere usato quando l’oggetto è disabilitato;

    • android:state_window_focused – (Boolean) “true” se questo elemento deve essere utilizzato quando la finestra dell’applicazione è attiva, “false” se questo elemento deve essere utilizzato quando la finestra dell’applicazione non ha lo stato attivo;