Resource daftar status warna
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
ColorStateList
adalah objek yang dapat ditentukan dalam XML dan diterapkan sebagai warna yang benar-benar mengubah warna, bergantung pada
status objek View
yang menjadi
tujuan penerapannya. Misalnya, widget Button
dapat berada dalam salah satu status berikut: ditekan, difokuskan, atau tidak keduanya. Dengan menggunakan daftar status warna,
Anda dapat memberikan warna yang berbeda untuk setiap status.
Anda bisa menjelaskan daftar keadaan dalam file XML. Setiap warna ditentukan dalam elemen <item>
di elemen <selector>
tunggal. Setiap <item>
menggunakan berbagai atribut untuk menjelaskan status yang digunakan.
Pada setiap perubahan status, daftar status akan ditelusuri dari atas ke bawah, dan item pertama
yang cocok dengan status saat ini akan digunakan. Pilihan ini tidak didasarkan pada kecocokan "terbaik",
tetapi lebih ke item pertama yang memenuhi kriteria minimum status.
Catatan: Jika ingin memberikan resource warna statis, gunakan
nilai warna sederhana.
- lokasi file:
res/color/filename.xml
Nama file digunakan sebagai ID resource.
- jenis data resource yang dihimpun:
- Pointer resource ke
ColorStateList
- referensi resource:
-
Di Java:
R.color.filename
Dalam XML: @[package:]color/filename
- sintaksis:
-
<?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>
- elemen:
-
<selector>
- Wajib. Elemen ini adalah elemen root. Berisi satu atau beberapa elemen
<item>
.
Atribut:
xmlns:android
- String. Wajib. Menentukan namespace XML, yaitu
"http://schemas.android.com/apk/res/android"
.
<item>
- Menentukan warna yang akan digunakan pada status tertentu, seperti yang dijelaskan oleh atributnya. Elemen ini adalah
turunan dari elemen
<selector>
.
Atribut:
android:color
- Warna heksadesimal. Wajib. Warna ini ditentukan dengan
nilai RGB dan saluran alpha opsional.
Nilainya selalu dimulai dengan karakter tagar (#
) dan diikuti oleh
informasi Alpha-Red-Green-Blue dalam salah satu format berikut:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
android:lStar
- Floating point. Opsional. Atribut ini memodifikasi luminans persepsi warna dasar. Dibutuhkan
nilai floating point antara 0 dan 100 atau atribut tema yang me-resolve seperti itu. Warna
keseluruhan item dihitung dengan mengonversi warna dasar menjadi ruang warna
yang mudah diakses dan menyetel L* ke nilai yang ditentukan pada atribut
lStar
.
Contoh: android:lStar="50"
android:state_pressed
- Boolean.
"true"
jika item ini digunakan saat objek diketuk, seperti saat tombol
disentuh atau diklik. "false"
jika item ini digunakan dalam status default, tidak diketuk.
android:state_focused
- Boolean.
"true"
jika item ini digunakan saat objek difokuskan, seperti saat tombol
disorot menggunakan trackball atau D-pad. "false"
jika item ini digunakan dalam status default,
tidak difokuskan.
android:state_selected
- Boolean.
"true"
jika item ini digunakan saat objek dipilih, seperti saat
tab dibuka. "false"
jika item ini digunakan saat objek tidak dipilih.
android:state_checkable
- Boolean.
"true"
jika item ini digunakan saat objek dapat dicentang. "false"
jika item
ini digunakan saat objek tidak dapat dicentang. Hanya berguna jika objek dapat
beralih antara widget yang dapat dicentang dan yang tidak dapat dicentang.
android:state_checked
- Boolean.
"true"
jika item ini digunakan saat objek dicentang. "false"
jika
digunakan saat objek batal dipilih.
android:state_enabled
- Boolean.
"true"
jika item ini digunakan saat objek diaktifkan, dan dapat
menerima peristiwa sentuh atau klik. "false"
jika digunakan saat objek dinonaktifkan.
android:state_window_focused
- Boolean.
"true"
jika item ini digunakan saat jendela aplikasi sedang difokuskan,
artinya
aplikasi berada di latar depan. "false"
jika item ini digunakan saat jendela
aplikasi tidak sedang difokuskan, misalnya jika menu notifikasi ditarik ke bawah atau dialog muncul.
Catatan: Item pertama dalam daftar status
yang sesuai dengan status objek saat ini diterapkan. Jadi, jika item pertama dalam daftar
tidak berisi atribut status sebelumnya, item tersebut akan berlaku setiap saat. Karena alasan ini, tempatkan
nilai default Anda di akhir, seperti ditunjukkan pada contoh berikut.
- contoh:
- File XML yang disimpan di
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>
XML tata letak berikut menerapkan daftar warna ke View
:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- lihat juga:
-
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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)"]]