Risorsa elenco stato colore

ColorStateList è un oggetto che puoi definire in XML e applicare come colore che cambia effettivamente i colori a seconda lo stato dell'oggetto View che è applicato. Ad esempio, Button Il widget può essere disponibile in uno dei seguenti stati: premuto, evidenziato o nessuno dei due. Tramite un elenco di stati dei colori, puoi fornire un colore diverso per ogni stato.

Descrivi l'elenco di stati in un file XML. Ogni colore è definito in un elemento <item> all'interno di un singolo elemento <selector>. Ogni <item> utilizza vari attributi per descrivere lo stato in cui viene utilizzato.

Durante ogni cambio di stato, l'elenco di stato viene spostato dall'alto verso il basso e il primo elemento corrisponde allo stato corrente. La selezione non si basa sul "migliore" ma il primo elemento che soddisfa i criteri minimi dello stato.

Nota: se vuoi fornire una risorsa di colore statico, utilizza un semplice valore color.

percorso del file:

res/color/filename.xml
Il nome file viene utilizzato come ID risorsa.
tipo di dati della risorsa compilato:
Puntatore della risorsa a ColorStateList
riferimento della risorsa:
In Java: R.color.filename
In XML: @[package:]color/filename
sintassi:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:color="hex_color"
        android:lStar="floating_point_value"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>
elementi:
<selector>
Obbligatorio. Si tratta dell'elemento principale. Contiene uno o più elementi <item>.

Attributi:

xmlns:android
Stringa. Obbligatorio. Definisce lo spazio dei nomi XML, "http://schemas.android.com/apk/res/android".
<item>
Definisce un colore da utilizzare durante determinati stati, come descritto dai suoi attributi. È una secondario di un elemento <selector>.

Attributi:

android:color
Colore esadeximale. Obbligatorio. Il colore è specificato con un Valore RGB e canale alfa facoltativo.

Il valore inizia sempre con un carattere cancelletto (#), seguito dal carattere Informazioni su Alfa-Rosso-Verde-Blu in uno dei seguenti formati:

  • #RGB
  • #ARGB
  • N. RRGGBB
  • N. AARRGGBB
android:lStar
Virgola mobile. Facoltativo. Questo attributo modifica la luminanza percettiva del colore della base. È necessario un un valore con virgola mobile compreso tra 0 e 100 o un attributo del tema che si risolve come tale. L'elemento il colore complessivo viene calcolato convertendo il colore di base in uno spazio colore ottimizzato per l'accessibilità e impostando L* sul valore specificato nell'attributo lStar.

Esempio: android:lStar="50"

android:state_pressed
Booleano. "true" se questo elemento viene utilizzato quando viene toccato, ad esempio quando viene toccato un pulsante quando viene toccato o fatto clic. È "false" se questo elemento viene utilizzato nello stato predefinito non toccato.
android:state_focused
Booleano. "true" se questo elemento viene utilizzato quando viene attivato lo stato attivo, ad esempio quando viene attivato un pulsante viene evidenziato usando la trackball o il D-pad. È "false" se questo elemento viene utilizzato per impostazione predefinita, in uno stato non incentrato.
android:state_selected
Booleano. "true" se questo elemento viene utilizzato quando viene selezionato l'oggetto, ad esempio quando un oggetto . È "false" se questo elemento è stato usato quando non è selezionato.
android:state_checkable
Booleano. "true" se questo elemento viene utilizzato quando è possibile selezionare l'oggetto. È "false" se questo viene utilizzato quando l'oggetto non è controllabile. Utile solo se l'oggetto può transizione tra widget controllabili e non controllabili.
android:state_checked
Booleano. "true" se questo elemento viene utilizzato quando viene selezionato l'oggetto. Se è "false" viene utilizzato quando l'oggetto è deselezionato.
android:state_enabled
Booleano. "true" se questo elemento viene utilizzato quando l'oggetto è abilitato, in grado di: ricezione di eventi di tocco o di clic. È "false" se viene utilizzato quando l'oggetto è disabilitato.
android:state_window_focused
Booleano. "true" se questo elemento viene utilizzato quando la finestra dell'applicazione è attiva, vale a dire l'applicazione è in primo piano. È "false" se questo elemento viene utilizzato quando l'applicazione finestra non è attiva, ad esempio se l'area notifiche viene visualizzata in basso o viene visualizzata una finestra di dialogo.

Nota: il primo elemento dell'elenco di stati che corrisponde allo stato corrente dell'oggetto. Quindi, se il primo elemento dell'elenco contiene nessuno degli attributi di stato precedenti, viene applicata ogni volta. Per questo motivo, posiziona valore predefinito, come mostrato nell'esempio seguente.

esempio:
File XML salvato alle ore res/color/button_text.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>

Il seguente file XML di layout applica l'elenco dei colori a un View:

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    android:textColor="@color/button_text" />
vedi anche: