Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Resource daftar status warna

ColorStateList adalah objek yang dapat ditentukan dalam XML dan diterapkan sebagai warna, tetapi benar-benar akan berubah warna mengikuti status objek View yang menjadi tujuan penerapannya. Contohnya, widget Button dapat berada dalam salah satu status yang ada (ditekan, difokuskan, atau tidak keduanya). Kemudian, dengan menggunakan daftar status warna, Anda dapat memberikan warna yang berbeda pada setiap status.

Anda dapat mendeskripsikan daftar status dalam file XML. Setiap warna ditentukan dalam elemen <item> di elemen <selector> tunggal. Setiap <item> menggunakan berbagai atribut untuk mendeskripsikan status yang akan menggunakannya.

Pada setiap perubahan status, daftar status akan ditelusuri dari atas ke bawah, dan item pertama yang cocok dengan status saat ini akan digunakan; pilihannya tidak didasarkan pada “kecocokan terbaik”, tetapi cukup 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 akan digunakan sebagai ID resource.
jenis data resource terhimpun:
Penunjuk 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: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 harus menjadi elemen root. Berisi satu atau beberapa elemen <item>.

atribut:

xmlns:android
String. Wajib. Menentukan ruang nama XML, yang harus ditetapkan seperti berikut: "http://schemas.android.com/apk/res/android".
<item>
Menentukan warna yang akan digunakan pada status tertentu, seperti yang dijelaskan oleh atributnya. Harus merupakan 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:state_pressed
Boolean. "true" jika item ini harus digunakan saat objek ditekan (misalnya saat tombol disentuh/diklik); "false" jika item ini harus digunakan dalam status default tidak ditekan.
android:state_focused
Boolean. "true" jika item ini harus digunakan saat objek difokuskan (seperti saat tombol disorot menggunakan trackball/d-pad); "false" jika item ini harus digunakan dalam status default tidak difokuskan.
android:state_selected
Boolean. "true" jika item ini harus digunakan saat objek dipilih (seperti saat tab dibuka); "false" jika item ini harus digunakan saat objek tidak dipilih.
android:state_checkable
Boolean. "true" jika item ini harus digunakan saat objek dapat dicentang; "false" jika item ini harus 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 harus digunakan saat objek dicentang; "false" jika harus digunakan saat objek tidak dicentang.
android:state_enabled
Boolean. "true" jika item ini harus digunakan saat objek diaktifkan (mampu menerima peristiwa sentuh/klik); "false" jika harus digunakan saat objek dinonaktifkan.
android:state_window_focused
Boolean. "true" jika item ini harus digunakan saat jendela aplikasi sedang difokuskan (aplikasi berada di latar depan), "false" jika item ini harus digunakan saat jendela aplikasi sedang tidak difokuskan (misalnya jika menu notifikasi ditarik ke bawah atau dialog muncul).

Catatan: Perlu diingat bahwa item pertama dalam daftar status yang cocok dengan status objek saat ini akan diterapkan. Jadi, jika item pertama dalam daftar tidak berisi atribut status di atas, item akan diterapkan setiap saat; itulah mengapa nilai default Anda harus selalu menjadi yang terakhir, seperti dalam contoh berikut ini.

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 ini akan menerapkan daftar warna ke Tampilan:

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