Ressource für Liste der Farbstatus
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Ein ColorStateList
ist ein Objekt, das Sie in XML definieren und als Farbe anwenden können, die je nach
Status des View
-Objekts, in dem es sich befindet
auf die sie angewendet wird. Beispiel: Button
Widget kann einen von mehreren Status haben: "gedrückt", "fokussiert" oder keiner von beiden. Mithilfe einer Farbstatusliste
können Sie für jeden Bundesstaat
eine andere Farbe festlegen.
Sie beschreiben die Liste der Bundesstaaten in einer XML-Datei. Jede Farbe wird in einem <item>
-Element innerhalb eines einzelnen <selector>
-Elements definiert. Jeweils <item>
verwendet verschiedene Attribute, um den Zustand, in dem sie verwendet wird, zu beschreiben.
Bei jeder Statusänderung wird die Statusliste von oben nach unten durchlaufen. Das erste Element, das
mit dem aktuellen Status übereinstimmt. Die Auswahl basiert nicht auf der „besten“ Variante.
sondern das erste Element, das die Mindestkriterien für den Bundesstaat erfüllt.
Hinweis:Wenn Sie eine statische Farbressource bereitstellen möchten, verwenden Sie ein Objekt
einfachen Wert für color.
- Dateispeicherort:
res/color/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
ColorStateList
- Ressourcenreferenz:
-
In Java:
R.color.filename
XML: @[package:]color/filename
- Syntax:
-
<?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>
- Elemente:
-
<selector>
- Erforderlich. Dies ist das Stammelement. Enthält ein oder mehrere
<item>
-Elemente.
Attribute:
xmlns:android
- String. Erforderlich. Definiert den XML-Namespace, der
"http://schemas.android.com/apk/res/android"
<item>
- Definiert eine Farbe, die bei bestimmten Zuständen verwendet werden soll, wie durch ihre Attribute beschrieben. Es ist ein
einem
<selector>
-Element untergeordnet ist.
Attribute:
android:color
- Hexadeximale Farbe. Erforderlich. Die Farbe wird mit einem
RGB-Wert und optionaler Alphakanal.
Der Wert beginnt immer mit einem Rautezeichen (#
), gefolgt vom
Alpha-Rot-Grün-Blau-Informationen in einem der folgenden Formate:
- RGB
- ARGB
- RRGGBB
- #AARRGGBB
android:lStar
- Gleitkomma. Optional. Mit diesem Attribut wird die Wahrnehmung der Leuchtdichte der Grundfarbe geändert. Dazu ist entweder eine
ein Gleitkommawert zwischen 0 und 100 oder ein Themenattribut, das als solches aufgelöst wird. Das Element
Die Gesamtfarbe wird berechnet, indem die Grundfarbe in einen barrierefreien Farbraum konvertiert wird.
und sein L* auf den im Attribut
lStar
angegebenen Wert setzen.
Beispiel: android:lStar="50"
android:state_pressed
- Boolescher Wert.
"true"
, wenn dieses Element verwendet wird, wenn auf das Objekt getippt wird, beispielsweise wenn eine Schaltfläche
die berührt oder angeklickt werden. Es ist "false"
, wenn dieses Element im Standardstatus verwendet wird, also nicht angetippt wird.
android:state_focused
- Boolescher Wert.
"true"
, wenn dieses Element verwendet wird, wenn das Objekt fokussiert ist, beispielsweise wenn eine Schaltfläche
mit dem Trackball oder dem Steuerkreuz hervorgehoben. Es ist "false"
, wenn dieses Element im Standard verwendet wird,
nicht fokussiert sein.
android:state_selected
- Boolescher Wert.
"true"
, wenn dieses Element bei der Auswahl des Objekts verwendet wird, beispielsweise wenn ein
Tab geöffnet. Es ist "false"
, wenn dieses Element verwendet wird, obwohl das Objekt nicht ausgewählt ist.
android:state_checkable
- Boolescher Wert.
"true"
, wenn dieses Element verwendet wird, wenn das Objekt überprüfbar ist. Es ist "false"
, wenn
item wird verwendet, wenn das Objekt nicht überprüfbar ist. Nur nützlich, wenn das Objekt
zwischen einem prüfbaren und einem nicht prüfbaren Widget.
android:state_checked
- Boolescher Wert.
"true"
, wenn dieses Element verwendet wird, wenn das Objekt geprüft wird. Es ist "false"
, wenn
wird verwendet, wenn die Auswahl des Objekts aufgehoben wird.
android:state_enabled
- Boolescher Wert.
"true"
, wenn dieses Element verwendet wird, wenn das Objekt aktiviert ist, das Folgendes kann:
Touch- oder Click-Events empfangen. Der Wert "false"
, wenn er verwendet wird, wenn das Objekt deaktiviert ist.
android:state_window_focused
- Boolescher Wert.
"true"
, wenn dieses Element verwendet wird, wenn das Anwendungsfenster im Fokus ist,
Das bedeutet:
im Vordergrund ausgeführt wird. Es ist "false"
, wenn dieses Element während der Anwendung verwendet wird
nicht im Fokus, z. B. wenn die Benachrichtigungsleiste heruntergezogen oder ein Dialogfeld angezeigt wird.
Hinweis:Der erste Punkt in der Liste der Bundesstaaten,
mit dem aktuellen Status des Objekts übereinstimmt. Wenn also das erste Element in der Liste
keines der vorangehenden Statusattribute, wird es jedes Mal angewendet. Aus diesem Grund sollten Sie
haben, wie im folgenden Beispiel gezeigt.
- Beispiel:
- XML-Datei gespeichert unter
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>
Die folgende Layout-XML wendet die Farbliste auf ein View
an:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- Siehe auch:
-
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Color state list resource\n\nA [ColorStateList](/reference/android/content/res/ColorStateList)\nis an object you can define in XML and apply as a color that actually changes colors depending on\nthe state of the [View](/reference/android/view/View) object it is\napplied to. For example, a [Button](/reference/android/widget/Button)\nwidget can exist in one of several states: pressed, focused, or neither. Using a color state list,\nyou can provide a different color for each state.\n\nYou describe the state list in an XML file. Each color is defined in an `\u003citem\u003e` element inside a single `\u003cselector\u003e` element. Each `\u003citem\u003e`\nuses various attributes to describe the state in which it is used.\n\nDuring each state change, the state list is traversed top to bottom, and the first item that\nmatches the current state is used. The selection is *isn't* based on the \"best\"\nmatch, but rather the first item that meets the minimum criteria of the state.\n\n**Note:** If you want to provide a static color resource, use a\nsimple [color](/guide/topics/resources/more-resources#Color) value.\n\nfile location:\n: `res/color/`*filename*`.xml` \n\n The filename is used as the resource ID.\n\ncompiled resource datatype:\n: Resource pointer to a [ColorStateList](/reference/android/content/res/ColorStateList)\n\nresource reference:\n:\n In Java: `R.color.`*filename* \n\n In XML: `@[`*package* `:]color/`*filename*\n\nsyntax:\n:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cselector xmlns:android=\"http://schemas.android.com/apk/res/android\" \u003e\n \u003citem\n android:color=\"hex_color\"\n android:lStar=\"floating_point_value\"\n android:state_pressed=[\"true\" | \"false\"]\n android:state_focused=[\"true\" | \"false\"]\n android:state_selected=[\"true\" | \"false\"]\n android:state_checkable=[\"true\" | \"false\"]\n android:state_checked=[\"true\" | \"false\"]\n android:state_enabled=[\"true\" | \"false\"]\n android:state_window_focused=[\"true\" | \"false\"] /\u003e\n \u003c/selector\u003e\n ```\n\nelements:\n:\n\n `\u003cselector\u003e`\n : **Required.** This is the root element. Contains one or more `\u003citem\u003e` elements.\n\n Attributes:\n\n `xmlns:android`\n : *String* . **Required.** Defines the XML namespace, which is\n `\"http://schemas.android.com/apk/res/android\"`.\n\n `\u003citem\u003e`\n : Defines a color to use during certain states, as described by its attributes. It is a\n child of a `\u003cselector\u003e` element.\n\n Attributes:\n\n `android:color`\n : *Hexadeximal color* . **Required** . The color is specified with an\n RGB value and optional alpha channel.\n\n The value always begins with a pound (`#`) character, followed by the\n Alpha-Red-Green-Blue information in one of the following formats:\n\n - #*RGB*\n - #*ARGB*\n - #*RRGGBB*\n - #*AARRGGBB*\n\n `android:lStar`\n : *Floating point* . **Optional** . This attribute modifies the base color's perceptual luminance. It takes either a\n floating-point value between 0 and 100 or a theme attribute that resolves as such. The item's\n overall color is calculated by converting the base color to an accessibility friendly color space\n and setting its L\\* to the value specified on the `lStar` attribute.\n\n Example: `android:lStar=\"50\"`\n\n `android:state_pressed`\n : *Boolean* . `\"true\"` if this item is used when the object is tapped, such as when a button\n is touched or clicked. It's `\"false\"` if this item is used in the default, non-tapped state.\n\n `android:state_focused`\n : *Boolean* . `\"true\"` if this item is used when the object is focused, such as when a button\n is highlighted using the trackball or D-pad. It's `\"false\"` if this item is used in the default,\n non-focused state.\n\n `android:state_selected`\n : *Boolean* . `\"true\"` if this item is used when the object is selected, such as when a\n tab is opened. It's `\"false\"` if this item it used when the object isn't selected.\n\n `android:state_checkable`\n : *Boolean* . `\"true\"` if this item is used when the object is checkable. It's `\"false\"` if this\n item is used when the object isn't checkable. Only useful if the object can\n transition between a checkable and non-checkable widget.\n\n `android:state_checked`\n : *Boolean* . `\"true\"` if this item is used when the object is checked. It's `\"false\"` if it\n is used when the object is deselected.\n\n `android:state_enabled`\n : *Boolean* . `\"true\"` if this item is used when the object is enabled, capable of\n receiving touch or click events. It's `\"false\"` if it is used when the object is disabled.\n\n `android:state_window_focused`\n : *Boolean* . `\"true\"` if this item is used when the application window has focus,\n meaning the\n application is in the foreground. It's `\"false\"` if this item is used when the application\n window doesn't have focus, such as if the notification shade is pulled down or a dialog appears.\n\n **Note:** The first item in the state list that\n matches the current state of the object is applied. So, if the first item in the list contains\n none of the preceding state attributes, then it applies every time. For this reason, place your\n default value last, as shown in the following example.\n\n\nexample:\n : XML file saved at `res/color/button_text.xml`: \n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cselector xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n \u003citem android:state_pressed=\"true\"\n android:color=\"#ffff0000\"/\u003e \u003c!-- pressed --\u003e\n \u003citem android:state_focused=\"true\"\n android:color=\"#ff0000ff\"/\u003e \u003c!-- focused --\u003e\n \u003citem android:color=\"#ff000000\"/\u003e \u003c!-- default --\u003e\n \u003c/selector\u003e\n ```\n\n\n The following layout XML applies the color list to a `View`:\n\n ```xml\n \u003cButton\n android:layout_width=\"fill_parent\"\n android:layout_height=\"wrap_content\"\n android:text=\"@string/button_text\"\n android:textColor=\"@color/button_text\" /\u003e\n ```\n\nsee also:\n:\n - [Color (simple value)](/guide/topics/resources/more-resources#Color)\n - [ColorStateList](/reference/android/content/res/ColorStateList)\n - [State list drawable](/guide/topics/resources/drawable-resource#StateList)"]]